Установить пул приложений с MSDeploy и TFS 2010 - PullRequest
5 голосов
/ 16 декабря 2010

Я пытаюсь развернуть веб-сайт с MSDeploy и групповой сборкой, используя часть этого ...

/p:DeployOnBuild
/p:DeployTarget=MsDeployPublish
/p:CreatePackageOnPublish=True
/p:MSDeployPublishMethod=InProc
/p:MSDeployServiceURL=localhost
/p:DeployIISAppPath="Default Web Site"

Есть ли способ настроить этот веб-сайт в пользовательском пуле приложений?

Ответы [ 2 ]

5 голосов
/ 08 марта 2011

Если вы используете IIS 7, вы можете использовать appPoolProvider для синхронизации пулов приложений с удаленным сервером. См:

http://technet.microsoft.com/en-us/library/dd569070(WS.10).aspx

и

http://blog.torresdal.net/2010/08/16/NoClickWebDeploymentPart2WebDeployAkaMsdeploy.aspx

Однако я не смог заставить его работать, и если вы используете IIS 6, это не сработает. Однако вы можете использовать MSDeploy для запуска пары команд на удаленном сервере, чтобы установить пул приложений (и зарегистрировать версию .NET на веб-сайте).

Сначала создайте командный файл, который содержит нечто похожее на следующее:

cscript //nologo C:\Inetpub\AdminScripts\adsutil.vbs 
  SET w3svc/<IIS number>/Root/<virtual directory>/AppPoolid "<app pool name>"

Итак, если номер IIS равен 1, ваш виртуальный каталог - «MyDirectory», а пул приложений - «.NET4.0», команда будет выглядеть следующим образом.

cscript //nologo C:\Inetpub\AdminScripts\adsutil.vbs 
  SET w3svc/1/Root/MyDirectory/AppPoolid ".NET4.0"

Затем вы можете запустить MSDeploy, передав этот пакетный файл в качестве аргумента и запустив его на удаленной машине:

MSDeploy 
  -verb:sync 
  -source:runCommand="<path to batch file>",waitinterval=5000 
  -dest:auto,computername=<computer name>

где <path to batch file> - это полный путь к пакетному файлу, который вы только что создали, и это компьютер, на котором вы хотите его запустить. Вот ссылка, описывающая аргумент runCommand: http://technet.microsoft.com/en-us/library/ee619740(WS.10).aspx

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

В этом же методе вы можете использовать и другие вещи, которые могут оказаться полезными для вас:
Регистрация версии IIS:

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe 
  -s w3svc/1/root/MyDirectory  

Создание пула приложений:

CSCRIPT //nologo %dir%\adsutil.vbs 
  CREATE w3svc/AppPools/AppPoolName IISApplicationPool  

Спасибо http://justsamson.com/2010/06/14/create-virtual-directory-in-iis-6-0-via-command-line/ за сценарии командной строки для выполнения различных функций.

0 голосов
/ 22 января 2011

Часть трюка с /p:IncludeAppPool=true.Это изменяет сценарий развертывания, чтобы включить AppPoolExtension.Но я еще не понял, как лучше настроить пул приложений.:)

...