Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описывается настройка свойств для конкретной среды для развертывания примера решения Contact Manager в определенной целевой среде.
Этот раздел является частью серии учебников, основанных на требованиях к развертыванию предприятия вымышленной компании Fabrikam, Inc. В этой серии учебников используется пример решения —решение Contact Manager — для представления веб-приложения с реалистичным уровнем сложности, включая приложение MVC 3 ASP.NET MVC 3, службу Windows Communication Foundation (WCF) и проект базы данных.
Метод развертывания в центре этих учебников основан на подходе к разделенному файлу проекта, описанному в разделе "Общие сведения о процессе сборки", в котором процесс сборки управляется двумя файлами проекта — одним из них содержит инструкции по сборке, которые применяются к каждой конечной среде, а также один из них содержит параметры сборки и развертывания для конкретной среды. Во время сборки файл проекта для конкретной среды объединяется в файл проекта, не зависящем от среды, чтобы сформировать полный набор инструкций по сборке.
Обзор процесса
Файл проекта, используемый для сборки и развертывания решения Диспетчера контактов, разделен на два физических файла:
- Один из них содержит универсальные параметры сборки и инструкции (файл Publish.proj ).
- Один из них содержит параметры сборки для конкретной среды (Env-Dev.proj, Env-Stage.proj и т. д.).
Во время сборки соответствующий файл проекта для конкретной среды объединяется в универсальный файл Publish.proj , чтобы сформировать полный набор инструкций по сборке. Вы можете настроить развертывание в конкретных целевых средах, создав или настроив файлы проекта для конкретной среды с параметрами, описывающими собственный сценарий развертывания.
Многие из этих значений определяются тем, как настроена целевая среда— в частности, настроен ли целевой веб-сервер для использования службы агента веб-развертывания (удаленного агента) или обработчика веб-развертывания. Дополнительные сведения об этих подходах и рекомендации по выбору подходящего подхода для вашей среды см. в разделе "Выбор правильного подхода к веб-развертыванию".
Для сценария Диспетчера контактов требуется два файла проекта для конкретной среды:
- Развертывание в тестовой среде разработчика (Env-Dev.proj). Тестовая среда разработчика настроена для принятия удаленных развертываний с помощью удаленного агента, как описано в сценарии: настройка тестовой среды для веб-развертывания. Этот файл должен предоставить адрес конечной точки удаленного агента, а также параметры конкретного расположения, такие как строки подключения и конечные точки службы.
- Развертывание в промежуточной среде (Env-Stage.proj). Промежуточная среда настроена для принятия удаленных развертываний с помощью обработчика веб-развертывания, как описано в сценарии: настройка промежуточной среды для веб-развертывания. Этот файл должен предоставить адрес конечной точки для Web Deploy Handler, а также параметры, зависящие от местоположения, такие как строки подключения и конечные точки служб.
Важно отметить, что параметры, настроенные в файле проекта для конкретной среды, не влияют на содержимое самого веб-пакета, а определяют, как развертывается пакет и какие значения параметров предоставляются при извлечении пакета. Веб-пакет импортируется в рабочую среду вручную, как описано в сценарии. Настройка рабочей среды для веб-развертывания и ручной установки веб-пакетов, поэтому не имеет значения, какие параметры используются в файле проекта для конкретной среды при создании пакета. Диспетчер служб IIS запрашивает все параметризованные значения, такие как строки подключения и конечные точки службы, при импорте пакета.
Чтобы развернуть решение Диспетчера контактов в собственной целевой среде, можно настроить этот файл или использовать его в качестве шаблона и создать собственный файл.
Настройка параметров развертывания для конкретной среды для решения Contact Manager
Откройте решение ContactManager-WCF в Visual Studio 2010.
В окне обозревателя решений разверните папку "Публикация ", разверните папку EnvConfig и дважды щелкните Env-Dev.proj.
Замените значения свойств в файле Env-Dev.proj правильными значениями для собственной тестовой среды.
Замечание
В таблице, следующей за этой процедурой, содержатся дополнительные сведения о каждом из этих свойств.
Сохраните работу и закройте файл Env-Dev.proj .
Выбор правильных свойств развертывания
В этой таблице описано назначение каждого свойства в примере файла проекта для конкретной среды , Env-Dev.proj, а также содержит некоторые рекомендации по указанным значениям.
Название свойства | Сведения |
---|---|
MSDeployComputerName Имя конечного веб-сервера или конечной точки службы. | Если вы развертываете службу удаленного агента на целевом веб-сервере, можно указать имя целевого компьютера (например, TESTWEB1 или TESTWEB1.fabrikam.net), или указать конечную точку удаленного агента (например, http://TESTWEB1/MSDEPLOYAGENTSERVICE ). Процедура развертывания осуществляется одинаково в каждом случае. При развертывании в обработчике веб-развертывания на целевом веб-сервере необходимо указать конечную точку службы и включить имя веб-сайта IIS в качестве параметра строки запроса (например, https://STAGEWEB1:8172/MSDeploy.axd?site=DemoSite ). |
MSDeployAuth Метод, который должен использовать Web Deploy для проверки подлинности на удаленном компьютере. | Это значение должно иметь значение NTLM или Basic. Как правило, вы будете использовать NTLM при развертывании в службе удаленных агентов и базовой версии при развертывании в обработчике веб-развертывания. Если вы используете обычную проверку подлинности, необходимо также указать имя пользователя и пароль, от имени которых средство веб-развертывания IIS (Web Deploy) должно действовать для выполнения развертывания. В этом примере эти значения предоставляются с помощью свойств MSDeployUsername и MSDeployPassword . Если вы используете проверку подлинности NTLM, можно опустить эти свойства или оставить их пустыми. |
MSDeployUsername Если вы используете базовую аутентификацию, Web Deploy будет использовать эту учетную запись на удаленном компьютере. | Это должно принимать форму DOMAIN*username* (например, FABRIKAM\matt). Это значение используется только при указании базовой проверки подлинности. При использовании аутентификации NTLM свойство можно не указывать. Если задано значение, оно будет игнорироваться. |
MSDeployPassword При использовании базовой проверки подлинности Web Deploy будет использовать этот пароль на удаленном компьютере. | Это пароль для учетной записи пользователя, указанной в свойстве MSDeployUsername . Это значение используется только при указании базовой проверки подлинности. При использовании аутентификации NTLM свойство можно не указывать. Если задано значение, оно будет игнорироваться. |
ContactManagerIisPath Путь IIS, на котором требуется развернуть приложение Диспетчера контактов MVC. | Это должен быть путь, как он отображается в диспетчере IIS, в форме [имя веб-сайта IIS]/[имявеб-приложения]. Помните, что веб-сайт IIS должен существовать перед развертыванием приложения. Например, если вы создали веб-сайт IIS с именем DemoSite, можно указать путь IIS для приложения MVC как DemoSite/ContactManager. |
ContactManagerServiceIisPath Путь IIS, на котором требуется развернуть службу WCF диспетчера контактов. | Например, если вы создали веб-сайт IIS с именем DemoSite, можно указать путь IIS для службы WCF как DemoSite/ContactManagerService. |
ContactManagerTargetUrl URL-адрес, по которому может быть достигнута служба WCF. | Это будет принимать форму [URL-адрес корневого веб-сайта IIS]/[имя приложения службы]/[конечная точка службы]. Например, если вы создали веб-сайт IIS через порт 85, URL-адрес будет принимать форму http://localhost:85/ContactManagerService/ContactService.svc . Помните, что приложение MVC и служба WCF развертываются на одном сервере. В результате этот URL-адрес доступен только на компьютере, на котором он установлен. Из-за этого лучше использовать localhost или IP-адрес, а не имя компьютера или заголовок узла в URL-адресе. Если вы используете имя компьютера или заголовок узла, функция проверки безопасности цикла в IIS может блокировать URL-адрес и возвращать ошибку HTTP 401.1 — неавторизованная ошибка. |
CmDatabaseConnectionString Строка подключения для сервера базы данных. | Строка подключения определяет учетные данные, которые VSDBCMD будет использовать для связи с сервером базы данных и создания базы данных и учетных данных, которые будет использовать пул приложений веб-сервера для связи с сервером базы данных и взаимодействия с базой данных. По сути, у вас есть два варианта здесь. Можно указать встроенную безопасность=true, в этом случае используется встроенная проверка подлинности Windows: Data Source=TESTDB1; Встроенная безопасность=true В этом случае база данных будет создана с помощью учетных данных пользователя, выполняющего исполняемый файл VSDBCMD, и приложение получит доступ к базе данных с помощью удостоверения учетной записи компьютера веб-сервера. Кроме того, можно указать имя пользователя и пароль учетной записи SQL Server. В этом случае учетные данные SQL Server используются как VSDBCMD для создания базы данных, так и пула приложений для взаимодействия с базой данных: Data Source=TESTDB1; User Id=ASqlUser; Password=; В пошаговом руководстве в этом разделе предполагается, что вы будете использовать встроенную проверку подлинности Windows. |
CmTargetDatabase Имя, которое необходимо предоставить базе данных, которую вы создадите на сервере базы данных. | Указанное здесь значение добавляется в команду VSDBCMD в качестве параметра. Он также используется для создания полной строки подключения, которую пул приложений на веб-сервере может использовать для взаимодействия с базой данных. |
В этих примерах показано, как настроить эти свойства для определенных сценариев развертывания.
Пример 1. Развертывание в службе удаленного агента
В этом примере:
- Вы развертываете службу удаленного агента на TESTWEB1.
- Вы указываете Web Deploy использовать проверку подлинности NTLM. Веб-развертывание будет выполняться с помощью учетных данных, используемых для вызова обработчика сборки Майкрософт (MSBuild).
- Встроенная проверка подлинности используется для развертывания базы данных ContactManager в TESTDB1. База данных будет развернута с помощью учетных данных, используемых для вызова MSBuild.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSDeployComputerName Condition=" '$(MSDeployComputerName)'=='' ">
TESTWEB1.fabrikam.net
</MSDeployComputerName>
<MSDeployAuth Condition=" '$(MSDeployAuth)'=='' ">NTLM</MSDeployAuth>
<ContactManagerTargetUrl Condition =" '$(ContactManagerTargetUrl)'=='' ">
http://localhost:85/ContactManagerService/ContactService.svc
</ContactManagerTargetUrl>
<ContactManagerIisPath Condition=" '$(ContactManagerIisPath)'=='' ">
DemoSite/ContactManager
</ContactManagerIisPath>
<ContactManagerServiceIisPath
Condition=" '$(ContactManagerServiceIisPath)'=='' ">
DemoSite/ContactManagerService
</ContactManagerServiceIisPath>
<CmDatabaseConnectionString Condition=" '$(CmDatabaseConnectionString)'=='' ">
Data Source=TESTDB1;Integrated Security=true</CmDatabaseConnectionString>
<CmTargetDatabase Condition=" '$(CmTargetDatabase)'=='' ">
ContactManager
</CmTargetDatabase>
</PropertyGroup>
</Project>
Пример 2 — Развертывание в конечной точке обработчика веб-развертывания
В этом примере:
- Вы выполняете развертывание на конечную точку службы Web Deploy Handler на STAGEWEB1.
- Вы указываете Web Deploy использовать базовую проверку подлинности.
- Вы указываете, что веб-развертывание должно выполняться от имени учетной записи FABRIKAM\stagingdeployer на удаленном компьютере.
- Вы используете проверку подлинности SQL Server для развертывания базы данных ContactManager в STAGEDB1.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSDeployComputerName Condition=" '$(MSDeployComputerName)'=='' ">
https://STAGEWEB1:8172/MSDeploy.axd?site=DemoSite
</MSDeployComputerName>
<MSDeployAuth Condition=" '$(MSDeployAuth)'=='' ">Basic</MSDeployAuth>
<MSDeployUsername Condition=" '$(MSDeployUsername)'=='' ">
FABRIKAM\stagingdeployer
</MSDeployUsername>
<MSDeployPassword Condition=" '$(MSDeployPassword)'=='' ">
Pa$$w0rd
</MSDeployPassword>
<ContactManagerTargetUrl Condition =" '$(ContactManagerTargetUrl)'=='' ">
http://localhost:85/ContactManagerService/ContactService.svc
</ContactManagerTargetUrl>
<ContactManagerIisPath Condition=" '$(ContactManagerIisPath)'=='' ">
DemoSite/ContactManager
</ContactManagerIisPath>
<ContactManagerServiceIisPath
Condition=" '$(ContactManagerServiceIisPath)'=='' ">
DemoSite/ContactManagerService
</ContactManagerServiceIisPath>
<CmDatabaseConnectionString Condition=" '$(CmDatabaseConnectionString)'=='' ">
Data Source=STAGEDB1;User ID=sa;'$($CREDENTIAL_PLACEHOLDER$)'
</CmDatabaseConnectionString>
<CmTargetDatabase Condition=" '$(CmTargetDatabase)'=='' ">
ContactManager
</CmTargetDatabase>
</PropertyGroup>
</Project>
Заключение
На этом этапе файлы проекта полностью настроены для сборки и развертывания решения Диспетчера контактов в одной или нескольких целевых средах.
Чтобы использовать эти файлы проекта в рамках одношагового процесса повторного развертывания, необходимо выполнить файл Publish.proj с помощью MSBuild и передать расположение файла проекта для конкретной среды в качестве параметра. Это можно сделать различными способами:
- Общие сведения о MSBuild и общие сведения о пользовательских файлах проекта см. в разделе "Общие сведения о файле проекта".
- Сведения о том, как сформулировать команду MSBuild, которая выполняет пользовательские файлы проекта, см. в разделе "Развертывание веб-пакетов".
- Сведения о том, как включить команды MSBuild в файл команд для однофакторных повторяющихся развертываний, см. в статье "Создание и запуск файла команд развертывания".
- Сведения о том, как выполнять пользовательские файлы проекта из Team Build, см. в разделе "Создание определения сборки" для поддержки развертывания.