MSdeploy развертывает приложение MVC 2 с неверным именем виртуального каталога - PullRequest
4 голосов
/ 24 ноября 2011

Я использую MSbuild (v4.0.30319.1) и MSdeploy (v7.1.618.0) для развертывания моего приложения ASP MVC 2 на IIS (v7.5).Вот команды, которые я запускаю для этого:

msbuild.exe <path to my csproj>/MyMvcApp.csproj /t:Package /p:configuration=release;outDir=<my output dir>

и msdeploy:

msdeploy.exe -verb:sync -source:package='<MSBuildOutputDir>\_PublishedWebsites\Webui_Package\MyMVCApp.zip' -dest:auto 

После сборки и развертывания приложение развертывается по адресу http://localhost/MyMVCApp_deploy, а не по адресу http://localhost/MyMVCApp.Я не ожидал, что _deploy будет в адресе.Как я могу это исправить?

Ответы [ 2 ]

12 голосов
/ 29 декабря 2011

Как прокомментировал Portalus, вы можете контролировать имя приложения на странице свойств. Я немного подробнее расскажу об этом ответе.

Настройка значения по умолчанию на вкладке PP / Web

По умолчанию при упаковке / публикации вашего веб-проекта мы создадим параметр веб-развертывания с именем Имя веб-приложения IIS , который контролирует это значение. Значение по умолчанию для этого ProjectName_deploy . Причина, по которой мы добавили суффикс _deploy, заключается в сценариях IIS. Таким образом, у вас уже может быть приложение IIS с именем ProjectName , но гораздо менее вероятно, что у вас будет приложение с именем ProjectName_deploy . Вы можете настроить это значение на вкладке Package / Publish Web свойств проекта. Если вы идете по этому пути, следует помнить, что все эти параметры привязаны к определенной конфигурации сборки . Поэтому, если вы сконфигурируете настройки на Debug и создадите свой пакет, используя Release , эти настройки не будут применяться. Смотри изображение ниже.

enter image description here

Когда вы устанавливаете это значение, оно устанавливает свойство MSBuild DeployIisAppPath, и вы можете использовать его, если хотите иметь некоторую логику, относящуюся к полученному значению.

Передать значение параметра при публикации

Если вы хотите, вы также можете просто указать значение этого параметра при публикации. У вас есть два основных подхода здесь.

  1. Укажите значение для индивидуального свойства
  2. Укажите значение этого и других свойств в файле

1. Укажите значение для индивидуального свойства:

Вы можете использовать параметр -setParam при вызове msdeploy.exe, чтобы задать новое значение для этого параметра. Например:

%msdeploy% -verb:sync -source:package=WebApplication3.zip -dest:auto -setParam:name="IIS Web Application Name",value="Default Web Site/FooBar"

2. Укажите значение для этого и других свойств в файле

Когда вы создаете пакет в VS, мы автоматически создаем для вас файл с именем {ProjectName} .SetParameters.xml. Этот файл является простым XML-файлом, и он будет содержать все параметры, а также их значения по умолчанию. Вы можете обновить этот файл, добавив в него правильные значения параметров, а затем передать его в файл msdeploy.exe ( примечание: имя файла не обязательно должно быть ... SetParameters.xml, вы можете переименовать его по своему желанию ). Если вы хотите использовать этот подход, просто используйте параметр -setParamFile при вызове msdeploy.exe. Вот пример синтаксиса командной строки для этого:

%msdeploy% -verb:sync -source:package=WebApplication3.zip -dest:auto -setParamFile=WebApplication3.SetParameters.xml
2 голосов
/ 28 декабря 2011

Измените имя приложения в настройках.

Щелкните правой кнопкой мыши свойства веб-проекта. Перейдите на страницу «Упаковать / опубликовать в Интернете», измените имя приложения для использования на сервере destiantion с «веб-сайта по умолчанию / mymvcapp_deploy» на «веб-сайт по умолчанию / mymvcapp»

...