Если вы используете 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
Как использовать Microsoft.Web.Administration
IIS6:
Использование System.DirectoryServices для настройки IIS
Справочник по программному администрированию IIS
Свойства метабазы IIS