我正在使用MSbuild(v4.0.30319.1)和MSdeploy(v7.1.618.0)在IIS(v7.5)上部署我的ASP MVC 2应用程序。 以下是我运行的命令:
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
会在地址中。
我该如何解决这个问题?
答案 0 :(得分:12)
正如Portalus所述,您可以在属性页面中控制应用程序的名称。我将在这里扩展一下这个答案。
在PP /网络标签上配置默认值
默认情况下,打包/发布Web项目时,我们将创建一个名为 IIS Web应用程序名称的Web部署参数来控制此值。这个的默认值是 的 ProjectName_deploy 即可。我们将_deploy后缀放在那里的原因是IIS场景。因此,您可能已经拥有一个名为 ProjectName 的IIS应用程序,但更不可能有一个名为 ProjectName_deploy 的应用程序。您可以在项目属性的包/发布Web 选项卡上自定义此值。如果你走这条路线,要记住的一件事是所有这些设置都与特定的构建配置相关联。因此,如果您在 Debug 上配置设置并使用 Release 创建包,则这些设置将不适用。见下图。
当您设置此值时,它会设置MSBuild属性DeployIisAppPath,如果您想要获得与其获得的值相关的逻辑,则可以使用它。
如果需要,您也可以在发布时指定此参数的值。您有两种主要方法。
调用msdeploy.exe时,可以使用-setParam参数为该参数提供新值。例如:
%msdeploy% -verb:sync -source:package=WebApplication3.zip -dest:auto -setParam:name="IIS Web Application Name",value="Default Web Site/FooBar"
在VS中创建包时,我们会自动为您创建一个名为{ProjectName} .SetParameters.xml的文件。此文件是一个简单的XML文件,它将包含所有参数及其默认值。您可以更新该文件以包含正确的参数值,然后将其传递给msdeploy.exe(注意:该文件不必命名... SetParameters.xml您可以将其重命名为任何您想要的)。如果要使用此方法,则只需在调用msdeploy.exe时使用-setParamFile参数。以下是此命令行语法的示例:
%msdeploy% -verb:sync -source:package=WebApplication3.zip -dest:auto -setParamFile=WebApplication3.SetParameters.xml
答案 1 :(得分:2)
在设置中更改应用程序名称。
右键单击Web项目匹配属性。转到打包/发布Web,将要在destiantion服务器上使用的应用程序名称从“default web site / mymvcapp_deploy”更改为“default website / mymvcapp”