Добавьте следующее в ваш код сразу после строки, где вы создаете newpool
:
DirectoryEntry newpool =
apppools.Children.Add(appPoolName, "IIsApplicationPool");
// Add this:
newpool.Properties["AppPoolIdentityType"].Value = 3;
newpool.Properties["WAMUserName"].Value =
Environment.MachineName + @"\" + username;
newpool.Properties["WAMUserPass"].Value = password;
Вам, очевидно, нужно будет добавить строковые переменные username
и password
к параметрам CreateAppPool()
метода.
Еще одна вещь, которую вам нужно сделать, если вы еще не знали, - убедиться, что пользователь пула приложений получает достаточные права для доступа к метабазе IIS, временным папкам ASP.NET и т. Д. Это можно сделать, выполнив следующую команду :
aspnet_regiis.exe -ga <username>
Вы можете найти этот инструмент в папке %SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727
. Я обычно просто выкладываю, используя System.Diagnostics.Process
.
И, наконец, пользователю пула приложений потребуются (как минимум) права на чтение в веб-папке приложения.