Инструмент разработчика для настройки IIS6 - PullRequest
12 голосов
/ 08 июня 2009

редактировать: IIS6 ; Я не уверен, что IIS7 является вариантом в ближайшем будущем ...

С точки зрения разработчика, я постоянно меняю свои настройки IIS или мне нужно объединить настройки из других команд в разные виртуальные машины. «Сохранить конфигурацию на диск» никогда не работал для меня.

Поскольку мы вносим множество небольших изменений, проекты веб-установки тоже никогда не работали ... Инструменты, предназначенные для веб-администратора, не обязательно подходят для разработчика - у нас разные цели и потребности.

Есть ли у кого-нибудь скрипт / инструмент / утилита, которая позволила бы нам быстро настроить IIS? В частности:

  • удалить все (начать чистку)
  • добавить загрузку виртуальных каталогов, каждый из которых сопоставлен с базовыми путями приложения
  • установить как приложение
  • установить пул приложений (предположим, пул приложений уже существует)
  • при необходимости установите версию ASP.NET 2.x

из некоторой находки плоского списка ввода (подойдет любой формат).

Ответы [ 6 ]

11 голосов
/ 08 июня 2009

Я могу придумать три варианта с макушки головы ...

  1. Оснастка Powershell.
  2. AdsUtil.vbs (по умолчанию находится в C: \ Inetpub \ AdminScripts) позволит вам записать эти задачи в пакетный файл или даже вызвать его из powershell, если у вас нет времени на обучение интерфейс WMI для IIS.
  3. Скрипт MSBuild. Возможно, его сложнее настроить, но MSBuild Extension Pack предоставляет некоторые задачи для управления IIS6 и IIS7 из сценария MSBuild.

Я думаю, что если бы мне нужно было это сделать, я бы использовал Powershell или убрал бы необходимость все вместе и создал бы базовую установку виртуальной машины, в которой уже были настроены все основы. просто открутите жесткий диск и будьте свободны, чтобы идти снова.

4 голосов
/ 19 февраля 2010

Я немного опоздал на шоу, но я подумал, что этот сценарий PowerShell может быть полезным, знайте, я использую его только для своей локальной коробки разработки, поэтому извиняюсь за магические числа.

AuthFlags = 4 - встроенная авторизация

Это не совсем соответствует требованиям Марка, но это хорошее начало.

Если вы загружаете 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 голосов
/ 08 июня 2009
1 голос
/ 20 апреля 2010

может или не может помочь, но проверить http://rprieto.github.com/psDeploy/iis-6-cmdlets.html

1 голос
/ 08 июня 2009

Возможно, вы захотите просмотреть XML-файлы конфигурации Metabase для IIS и разрешить прямое редактирование.

1 голос
/ 08 июня 2009

Powershell будет работать. Если вы хотите избежать зависимостей, вы также можете сгенерировать скрипт для работы с AdsUtil.vbs.

Возможно, проще было бы стандартизировать на IIS7, где все это хранится в файлах web.config, что значительно облегчает жизнь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...