Инструмент разработчика для настройки IIS6
изменить: IIS6; Я не уверен, что IIS7 - это вариант в ближайшем будущем...
От угла разработчика я постоянно меняю настройки IIS или нужно объединить настройки из других команд в разные виртуальные машины. "Сохранить конфигурацию на диск" никогда не работало хорошо для меня.
Поскольку мы делаем множество небольших изменений, проекты веб-инсталляции никогда не работали ни... Инструменты, предназначенные для веб-администратора, не обязательно подходят для разработчика - у нас разные цели и потребности.
У кого-нибудь есть script/tool/utility, который позволит нам быстро настроить IIS? В частности:
- удалить все (начать чистку)
- добавить загрузку виртуальных каталогов, каждая из которых привязана к базовым путям приложений
- устанавливается как приложение
- установить приложение-пул (предположим, что пул приложений уже существует)
- установите версию ASP.NET на 2.x при необходимости
из некоторой находки плоского списка ввода (любой формат будет делать).
Ответы
Ответ 1
Я могу думать о трех вариантах от верхней части головы...
- оснастка Powershell.
- AdsUtil.vbs(находится в C:\Inetpub\AdminScripts по умолчанию) позволит вам script выполнять эти задачи в пакетном файле, или вы даже можете вызвать его из powershell, если у вас нет времени на инвестировать изучение интерфейса WMI для IIS.
- MSBuild script. Вероятно, сложнее настроить, но MSBuild Extension Pack предоставляет некоторые задачи для управления IIS6 и IIS7 из MSBuild script.
Я думаю, если бы мне это нужно было сделать, я бы использовал Powershell или удалил все вместе и создал базовую установку VM, в которой были уже настроены все основы. Когда я закончил с пищей, я бы просто откатите жесткий диск и будьте свободны снова.
Ответ 2
PowerShell с snapin администрирования IIS?
Ответ 3
Я немного опоздал на шоу, но я подумал, что этот PowerShell script мой будет полезен, помните, что я использую это только для своей локальной коробки разработки, поэтому извиняюсь за магические числа.
AuthFlags = 4 - встроенная авторизация
Это точно не соответствует требованиям Marc, но это хорошее начало.
Если вы загрузите WMI Tools, вы можете использовать их для изучения интерфейса WMI для метабазы IIS.
function CreateAppPool($poolName,$userName,$password)
{
[wmiclass] $appPoolSettings = "root\MicrosoftIISv2:IISApplicationPoolSetting";
$newPool = $appPoolSettings.CreateInstance();
$newPool.Name = "W3SVC/AppPools/" + $poolName;
$newPool.WAMUsername = $userName;
$newPool.WAMUserPass = $password;
$newPool.AppPoolIdentityType = 3;
$newPool.Put();
# Do it again if it fails as there is a bug with Powershell/WMI
if (!$?)
{
$newPool.Put();
}
}
function CreateWebsite($webSiteName, $path, $port, $appPoolName)
{
[wmiclass] $bindingClass = 'root\MicrosoftIISv2:ServerBinding';
$bindings = $bindingClass.CreateInstance();
$bindings.Port = $port;
$webService = Get-WmiObject -namespace "root\MicrosoftIISv2" -class "IIsWebService";
$webSite = $webService.CreateNewSite($webSiteName, $bindings, $path);
[int] $index = $webSite.ReturnValue.IndexOf("'") + 1;
[int] $length = $webSite.ReturnValue.Length - $index - 1;
[string] $websiteID = $webSite.ReturnValue.SubString($index, $length) + "/root";
$webVirtualDirSetting = Get-WmiObject -namespace "root\MicrosoftIISv2" -class "IIsWebVirtualDirSetting" | Where-Object {$_.Name -eq $websiteID};
$webVirtualDirSetting.AppFriendlyName = $webSiteName;
$webVirtualDirSetting.AppPoolId = $appPoolName;
$webVirtualDirSetting.AccessFlags = 517;
$webVirtualDirSetting.AuthFlags = 4;
$webVirtualDirSetting.Put();
#Switch the Website to .NET 2.0
C:\windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -sn W3SVC/
}
$webSiteName = "MyWebsiteName";
$webSitePath = "C:\MyWebsitePath";
$webSitePort = "9001";
$appPoolName = "MyWebsitePool";
$appPoolIdentity = "MYDESKTOP\MyWebsiteIdentity";
$appPoolPassword = "MyWebsitePassword";
CreateAppPool $appPoolName $appPoolIdentity $appPoolPassword
CreateWebsite $webSiteName $webSitePath $webSitePort $appPoolName
Ответ 4
Powershell будет работать. Если вы хотите избежать зависимостей, вы также можете создать script для работы с AdsUtil.vbs.
Вероятно, проще было бы стандартизировать IIS7, где все это происходит в файлах web.config, что делает жизнь намного проще.
Ответ 5
Возможно, вы захотите ознакомиться с конфигурационными файлами Metabase XML для IIS и разрешить прямое редактирование.
Ответ 6
может или не поможет, но проверьте
http://rprieto.github.com/psDeploy/iis-6-cmdlets.html