gpt4 book ai didi

iis - 有什么方法可以使用 c# 在 IIS 管理器中创建应用程序池吗?

转载 作者:行者123 更新时间:2023-12-04 21:36:39 24 4
gpt4 key购买 nike

任何人都可以帮助使用 C# 在 IIS 中创建应用程序池吗?

完成此操作后,如何再次使用 C# 将应用程序池分配给虚拟目录?

最佳答案

如果您使用的是 IIS7:

要使用和设置 .NET Framework 版本(在本例中为 v2.0)创建应用程序池,请执行以下操作:

using Microsoft.Web.Administration;
...

using(ServerManager serverManager = new ServerManager())
{
ApplicationPool newPool = serverManager.ApplicationPools.Add("MyNewPool");
newPool.ManagedRuntimeVersion = "v2.0";
serverManager.CommitChanges();
}

您应该添加对 Microsoft.Web.Administration.dll 的引用可以在以下位置找到:

%SYSTEMROOT%\System32\InetSrv



将虚拟目录分配给应用程序池(尽管我认为您指的是应用程序):
using (ServerManager serverManager = new ServerManager())
{
// Find Default Website
Site site = serverManager.Sites.First(s => s.Id == 1);
Application newApp = site.Applications.Add("/MyNewApp",
@"C:\inetpub\wwwroot\mynewapp");
newApp.ApplicationPoolName = "MyNewPool";
serverManager.CommitChanges();
}

如果您使用的是 IIS6:
using (DirectoryEntry appPools = 
new DirectoryEntry("IIS://localhost/W3SVC/AppPools"))
{
using (DirectoryEntry newPool = appPools.Children.Add("MyNewPool",
"IIsApplicationPool"))
{
// Just use NetworkService as pool account
newPool.Properties["AppPoolIdentityType"].Value = 2;
newPool.CommitChanges();
}
}

以下代码创建一个名为 MyNewApp 的应用程序在默认网站中并将其分配给应用程序池 MyNewPool我们使用上面的代码示例创建:
using (DirectoryEntry siteRoot = 
new DirectoryEntry(@"IIS://Localhost/W3SVC/1/root"))
{
using (DirectoryEntry newApp =
siteRoot.Children.Add("MyNewApp", "IIsWebVirtualDir"))
{
newApp.Properties["Path"].Value = @"C:\inetpub\wwwroot\mynewapp";
newApp.Properties["AccessScript"][0] = true;
newApp.Properties["AccessFlags"].Value = 513; // AccessScript | AccessRead
newApp.Properties["AuthFlags"].Value = 7;// AuthAnonymous|AuthBasic|AuthNTLM
newApp.Properties["AppIsolated"].Value = "2";
newApp.Properties["AppRoot"].Value =
newApp.Path.Replace("IIS://Localhost", "/LM");
newApp.Properties["AppPoolId"].Value = "MyNewPool";
newApp.Properties["AppFriendlyName"].Value = "MyNewApp";
newApp.CommitChanges();
}
}

在上述所有情况下,您的代码都需要以管理员身份运行。

有关更多信息,请参阅:

IIS7:

IIS 7 Configuration Reference
How to Use Microsoft.Web.Administration



IIS6:

Using System.DirectoryServices to Configure IIS
IIS Programmatic Administration Reference
IIS Metabase Properties

关于iis - 有什么方法可以使用 c# 在 IIS 管理器中创建应用程序池吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5576129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com