@ AndrewArnold хорошая точка зрения, готово.

ользую следующий код для создания пула приложений:

var metabasePath = string.Format(@"IIS://{0}/W3SVC/AppPools", serverName);
DirectoryEntry newpool;
DirectoryEntry apppools = new DirectoryEntry(metabasePath);
newpool = apppools.Children.Add(appPoolName, "IIsApplicationPool");
newpool.CommitChanges();

Как указать, что пул приложений должен использовать .NET Framework 4.0?

Ответы на вопрос(3)

но в целом имейте в виду, что вы можете использовать инструмент appcmd для этого:https://technet.microsoft.com/en-us/library/cc731784%28v=ws.10%29.aspx, В частности:

appcmd add apppool /name: string /managedRuntimeVersion: string /managedPipelineMode: Integrated | Classic

 Andrew Arnold20 февр. 2015 г., 20:10
Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными в случае изменения связанной страницы.
 bmm6o20 февр. 2015 г., 20:35
@ AndrewArnold хорошая точка зрения, готово.
newpool.Properties["ManagedRuntimeVersion"].Value = "v4.0";

что и Microsoft.Web.Administration.dll, но с использованием DirectoryEntry

Также

newPool.InvokeSet("ManagedPipelineMode", new object[] { 0 });

Переключится в интегрированный или классический режим конвейера, используя DirectoryEntry.

Решение Вопроса

которые вы используете IIS7. Если вам абсолютно не нужно, не используйте компоненты совместимости IIS6. Ваш предпочтительный подход должен заключаться в использованииMicrosoft.Web.Administration управляемый API.

Чтобы создать пул приложений с помощью этого и установить версию .NET Framework на 4.0, сделайте следующее:

using Microsoft.Web.Administration;
...

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

Вы должны добавить ссылку наMicrosoft.Web.Administration.dll который можно найти в:

%SYSTEMROOT%\System32\InetSrv

 Chris Nevill06 янв. 2016 г., 17:10
Привет, Кев - я не думаю, что ты уже добавил часть Nuget. Один ответ от меня за этот ответ, хотя :)
 jgauffin18 авг. 2015 г., 21:01
Нет проблем. Это из удаленного ответа ниже. (И все это по лицензии CC)
 jgauffin25 янв. 2011 г., 11:38
Да. Я переключился на ServerManager. Проблема заключалась в том, что я не знал, где находится DLL для System.Web.Administration. Ответ%WinDir%\System32\InetSrv\Microsoft.Web.Administration.dll
 jgauffin18 авг. 2015 г., 16:03
Microsoft.Web.Administration также может быть добавлен в виде пакета NuGet сейчас, вместо прямой ссылки на dll
 Kev18 авг. 2015 г., 16:35
@jgauffin - о, круто, вы не возражаете, если я добавлю это к своему ответу?

Ваш ответ на вопрос