当前位置: 代码迷 >> ASP.NET >> IIS创设应用程序池,设置相关属性
  详细解决方案

IIS创设应用程序池,设置相关属性

热度:6026   发布时间:2013-02-25 00:00:00.0
IIS创建应用程序池,设置相关属性
用DirectoryEntry创建应用程序池后,如何可以设置该任务的.net版本,还有托管管道模式啊??

我创建完的新的应用程序池后,默认.net为2.0,管道模式经典。。


怎么可以用代码修改啊?

------解决方案--------------------------------------------------------
代码修改多麻烦啊,建议直接在iis虚拟路径或网站属性中修改……
------解决方案--------------------------------------------------------
看错了。。是用DirectoryEntry创建


// .NET对应属性如下,其中de为虚拟目录对应的DirectoryEntry对象
de.Properties["UNCUserName"][0] = 账户字符串; // Web服务器桥接文件服务器的UNC账户
de.Properties["UNCPassword"][0] = 密码字符串; // Web服务器桥接文件服务器的UNC账户密码
 
//【ASP.NET】
ScriptMaps[0] =.asp,C:\WINDOWS\system32\inetsrv\asp.dll,5,GET,HEAD,POST,TRACE
……
ScriptMaps[50] =.refresh,C:\windows\Microsoft.NET\Framework\v2.0.50727\aspnet_is
api.dll,5,GET,HEAD,POST,DEBUG




tring HostName = "localhost";
string newSiteNum = "2";
string Path = String.F"localhost";ormat("IIS://{0}/w3svc/{1}/root",HostName,newSiteNum);
DirectoryEntry root = new DirectoryEntry(Path);

NewWebSiteInfoAll newweb = new NewWebSiteInfoAll();
ArrayList arl = new ArrayList();
arl.Add(@".rem,D:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,1,GET,HEAD,POST,DEBUG");
arl.Add(@".asax,D:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,5,GET,HEAD,POST,DEBUG");
root.Properties["s criptMaps"].Value = arl.ToArray();
root.CommitChanges();
不懂是不是楼主要的
------解决方案--------------------------------------------------------
改.net 版本看看这个, IIS6下得,不清楚IIS7下是否工作:

IIS 6.0 DirectoryEntry ScriptMaps property and set .Net version
http://stackoverflow.com/questions/1299084/iis-6-0-directoryentry-scriptmaps-property-and-set-net-version
------解决方案--------------------------------------------------------
这个是修改IIS7的Managed Pipeline mode 的代码:
C# code
static void Main(string[] args)        {            string propertyName = "ManagedPipelineMode";            int mode = -1;            if (args.Length < 2 || string.Compare(args[0], "/?") == 0 || string.Compare(args[0].ToLower(), "/help") == 0)            {                ShowHelp();                return;            }            string appPoolName = args[0];            string pipeLineMode = args[1].ToLower();            switch (pipeLineMode)            {                case "classic":                    mode = 1;                    break;                case "integrated":                    mode = 0;                    break;                default:                    mode = -1;                    break;            }            if (mode == -1)            {                ShowHelp();                return;            }            DirectoryEntry poolRoot = new DirectoryEntry("IIS://localhost/W3SVC/AppPools");            try            {                DirectoryEntry pool = poolRoot.Children.Find(appPoolName, "IIsApplicationPool");                pool.InvokeSet(propertyName, mode);                pool.CommitChanges();            }            catch (DirectoryNotFoundException ex)            {                Console.WriteLine("Application pool name was not found.");                Console.WriteLine(ex.Message);            }            catch (COMException ex)            {                Console.WriteLine("Error in changing property \"" + propertyName + "\" of Application Pool \"" + appPoolName + "\"");                Console.WriteLine(ex.Message);            }            catch (Exception ex)            {                Console.WriteLine("Unknown error.");                Console.WriteLine(ex.Message);            }        }        private static void ShowHelp()        {            Console.WriteLine("Application pool ManagedPipelineMode property changer.");            Console.WriteLine();            Console.WriteLine("Syntax: AppPoolChanger AppPoolName Integrated|Classic");            Console.WriteLine("AppPoolName - The application pool name needed to be altered (case sensitive).");            Console.WriteLine();            Console.WriteLine("Use example: AppPoolChanger DefaultAppPool Classic");            Console.WriteLine("The above example will change the Application pool Managed Pipeline Mode to classic");            Console.WriteLine();            Console.WriteLine(@"/? or /help\tDisplay this usage message");        }
  相关解决方案