iis - 如何将deployIisAppPath 指定为非DefaultWebSite 的站点根目录?

标签 iis tfs msbuild msdeploy

我有一个 ASP.NET MVC Web 应用程序项目,我想将其部署到我的 IIS Web 服务器。站点树是这样建立的:

SERVERNAME(myDomain\Username)
   Application Pools
   Sites
      Default Web Site
      MyProjectSite
         bin
         Content
         ...
         Views

我正在尝试部署到 MyProject 站点。请参阅下面我正在使用的设置与我返回的错误。我显然没有正确指定我的网站路径,但对于我的生活,我无法弄清楚它应该是什么。

以下设置在迭代之间保持不变:

/p:DeployOnBuild=True/p:DeployTarget=MsDeployPublish/p:CreatePackageOnPublish=False/p:MSDeployPublishMethod=WMSvc/p:AuthType=Basic/p:Username="myUserName"/p:Password="我的密码"/p:AllowUntrustedCertificate=True

将 SiteName/指定为 IISAppPath:

参数:

/p:MsDeployServiceUrl="https://serverName:8172/MsDeploy.axd?Site=MyProjectSite"/p:DeployIisAppPath="MyProjectSite/"

错误:

使用 Web 管理服务连接时无法完成指定提供程序(“createApp”)的操作 - 我不想创建新站点。我想同步已有的内容。

指定 IISAppPath 为 Root(假设使用 URL 中的站点名称)

参数:

/p:MsDeployServiceUrl="https://serverName:8172/MsDeploy.axd?Site=MyProjectSite"/p:DeployIisAppPath="/"

错误:

使用 Web 管理服务连接时无法完成指定提供程序(“iisApp”)的操作 - 看起来它正在尝试访问默认网站或其他内容(我特意访问了该网站)没有给自己权利)。

指定 IISAppPath 为空字符串(假设使用 URL 中的站点名称)

参数:

/p:MsDeployServiceUrl="https://serverName:8172/MsDeploy.axd?Site=MyProjectSite"/p:DeployIisAppPath=""

错误:

“ConcatFullServiceUrlWithSiteName”任务未给出所需参数“SiteAppName”的值 - 因此它将“”解释为实际上的空值,从而破坏了连接它的尝试。

URL 中不指定任何站点属性,但将 SiteName/指定为 IISAppPath

参数:

/p:MsDeployServiceUrl="https://serverName:8172/MsDeploy.axd"/p:DeployIisAppPath="MyProjectSite/"

错误:

使用 Web 管理服务连接时无法完成指定提供程序(“createApp”)的操作

URL 中不指定任何站点属性,但将 SiteName 指定为 IISAppPath

参数:

/p:MsDeployServiceUrl="https://serverName:8172/MsDeploy.axd"/p:DeployIisAppPath="MyProjectSite"

错误:

使用 Web 管理服务连接时无法完成指定提供程序(“createApp”)的操作

现在鉴于它正在 SiteAppName 上运行串联,它必须将其与站点名称组合,是吗?您应该在那里放置什么以使站点同步到站点的根目录?

更新

为了找出正确的路径方案,我尝试使用 Visual Studio 2012 发布对话框进行发布。在这种情况下,我收到一条错误消息,指出请求超时(测试连接几乎立即有效,预览更改有效,但需要几秒钟)。我检查了事件日志和 wmsvc 的跟踪日志,但没有结果。即使将跟踪设置为详细,跟踪日志中也不会显示任何内容。我尝试禁用两台计算机上的防火墙,但似乎也不起作用。

最佳答案

解决了这个问题。

该问题源于项目属性的 Web 部署页面中的两个设置。我之前已将此项目设置为(在调试配置中)仅复制运行应用程序所需的文件,而不是构建 zip 包。然而,我忽略了对发布配置的这些设置进行任何操作。

它尝试使用 createApp 的原因(置信度 75%)是因为它是从它创建的 Zip 包进行部署的。所以在这些情况下我的 IISAppPath 设置很好,我只是部署了错误的东西。

我将将部署包创建为zip文件设置为false,并将要部署的项目下拉列表设置为“仅运行此应用程序所需的文件”,一切都顺利进行了出了点问题。

顺便说一句,我发现(如上所述)您可以使用 Visual Studio 中的 Web 发布对话框输出的发布配置文件(不幸的是 2012 年;2010 年您必须进行一些我不确定的处理)。我将我的命名为不带空格,并提供密码作为参数以及不受信任的证书设置。现在,TFS 的构建定义中的 MSBuild 参数如下所示: /p:DeployOnBuild=True;PublishProfile=NameOfPublishProfile/p:AllowUntrustedCertificate=True/p:Password=PleaseVerifyMe

关于iis - 如何将deployIisAppPath 指定为非DefaultWebSite 的站点根目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15234734/

相关文章:

c# - 附加到进程 IIS 未命中断点

visual-studio-2010 - TF31002 : Unable to connect to this Team Foundation Server for VS 2010, VS 2012 从同一台机器连接到同一服务器

.net - 解决 MSB3247 - 发现同一依赖程序集的不同版本之间存在冲突

c# - 如何防止 Visual Studio 每次都构建项目?

asp.net - IIS 7.5 提供空白页(静态和动态内容)

c# - 如何检索虚拟目录的物理路径

visual-studio-2015 - TFS 2015在一个目录中发布构建工件

visual-studio-2010 - 使用 VS 2010 和 TFS 自动搁置更改

msbuild - 防止 .NET Core 2.0 在 RHEL7 上将文件保留在/tmp 中

tomcat - 有没有办法从 SSRS 报告管理器 URL 禁用 X-Frame 选项?