使用MSBuild将Visual Studio 2010 Web部署到远程服务器

3
我正在运行Windows 7和IIS 7,并安装了Web Deploy 2.0,'Web Management Service'和'Web Deployment Agent Service'已启动。
我正在尝试使用MSBuild将Web项目发布到远程IIS 7服务器,但当我运行以下使用MSDeployPublishMethod发布方法的MSBuild命令时失败:
MSBuild Projects="[项目文件]" Properties="DeployOnBuild=True; DeployTarget=MsDeployPublish; CreatePackageOnPublish=True; MSDeployPublishMethod=WMSVC; MSDeployServiceUrl=http://localhost:8172/MsDeploy.axd; DeployIisAppPath=Default Web Site/[我的网站]; UserName=[用户名]; Password=[密码]"> /MSBuild
错误: error : Could not complete the request to remote agent URL 'https://http//localhost:8172/MsDeploy.axd?site=Default Web Site'。
该URL似乎以https为前缀,虽然我可以通过Visual Studio指定http并通过IDE成功发布,但没有办法指定http。
当我将URL指定为https://时,仍会发生同样的错误。

错误:

无法完成对远程代理URL'https://localhost:8172/MsDeploy.axd?site=Default Web Site'的请求。

使用InProc的MSDeployPublishMethod选项可以在本地运行MSBuild命令,但此选项不允许远程部署。

MSBuild命令:

MSBuild Projects="[项目文件]" Properties="DeployOnBuild=True; DeployTarget=MsDeployPublish; CreatePackageOnPublish=True; MSDeployPublishMethod=InProc; MSDeployServiceUrl=localhost; DeployIisAppPath=Default Web Site/[我的网站]; UserName=[用户名]; Password=[密码]"> /MSBuild>

我还尝试使用MSDeployPublishMethod为RemoteAgent,但会导致以下错误:

错误:

无法联系远程代理(URL http://localhost/MsDeployAgentService)。
请确保目标计算机上安装并启动了远程代理服务。

MSBuild命令如下:

MSBuild命令:

MSBuild 项目="[项目文件]" 属性="DeployOnBuild=True; DeployTarget=MsDeployPublish; MSDeployPublishMethod=RemoteAgent; AllowUntrustedCertificated=True; MSDeployServiceUrl=http://localhost/MsDeployAgentService; DeployIisAppPath=Default Web Site/[我的网站]; UserName=[用户名]; Password=[密码]"> /MSBuild>

我错过了什么?


请注意,当传递Web Deploy操作设置时,不能使用“=”(等号)。您必须使用“:”(冒号),例如-allowUntrusted=true 必须是-allowUntrusted:true。我无法相信所有文档都使用=,这是明显错误的。我很幸运能够找到这个问题。官方(不正确)文档在此处:http://technet.microsoft.com/en-us/library/dd569089(v=ws.10).aspx - Vivian Farrell
2个回答

3

对于IIS 7,请检查以下内容:

MSDeployPublishMethod=WMSVC 

MSDeployServiceUrl=localhost 

AllowUntrustedCertificate=True  -- Unless you have a valid certificate...

MSBuild Projects="[project file]" Properties="DeployOnBuild=True; DeployTarget=MsDeployPublish; CreatePackageOnPublish=True; MSDeployPublishMethod=**WMSVC**; MSDeployServiceUrl=**localhost**; DeployIisAppPath=Default Web Site/[my website]; UserName=[username]; Password=[password]; **AllowUntrustedCertificate=True**"> /MSBuild

我正在使用IIS 8.5,将MsDeployPublishMethod设置为WMSVC对我有效。 - Alireza Maddah

2

以下是一些建议:

1) MSBuild 在您的msbuild命令中添加标志-allowUntrusted(-allowUntrusted=True),因为默认的wmsvc ssl证书有问题。请先尝试此方法。

2) IIS > 服务器节点 > 管理服务委派。 您是否正确设置了这个?否则,您需要设置规则来部署内容、设置应用程序、部署数据库并将用户添加到这些规则中。

3) IIS > 网站 > 默认网站 > IIS管理权限 您是否将您的用户添加到此列表中?如果您没有此选项,请再次运行Web部署工具安装程序。

4) 文件/文件夹权限 您是否在站点物理路径目录上设置了正确的权限?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接