通过[proj] .deploy.cmd发布时,Web Deploy返回401未授权

时间:2010-11-15 20:52:44

标签: visual-studio visual-studio-2010 msbuild msdeploy

我在Web部署方面遇到了一些问题,我似乎无法解决这个问题。每次我尝试通过包中的[proj] .deploy.cmd命令发布到WMSvc时我得到“远程服务器返回错误:(401)未经授权”。该命令看起来像这样(项目称为“Web”,服务器名为“AutoDeploy”):

Web.deploy.cmd /Y /M:https://AutoDeploy:8172/MsDeploy.axd -allowUntrusted

我可以通过Visual Studio正常发布到https://AutoDeploy:8172/MsDeploy.axd,因此该服务肯定正在运行,我可以成功地以管理员身份对其进行身份验证。在以管理员身份登录时在机器上本地运行此程序(它只是一个小的本地Win 2k8 VPC)不起作用,并且使用管理员帐户添加/ U和/ P参数不起作用。

我已经enabled failed request tracing并且正在获得this output所以至少有一些东西需要参考,但不幸的是我无法确定根本原因是什么。我正在尝试使用与Visual Studio中相同的凭据连接到同一服务,但显然有些不同。

出于兴趣,我可以按照以下方式发布到Web部署代理服务(MsDepSvc):

Web.deploy.cmd /Y /M:http://AutoDeploy/MsDeployAgentService /U:AutoDeploy\Administrator /P:...

但我真的想让WMSvc运行!有什么想法吗?

1 个答案:

答案 0 :(得分:11)

Sayed上面的评论让我指出了正确的方向。在构建输出详细程度“详细”并在.csproj(另一个tip from Sayed's blog)中将UseMsdeployExe设置为true之后,我发现Visual Studio生成的命令将身份验证类型设置为基本,这是回顾性的,很明显给定纯文本用户名和密码。

How to: Install a Deployment Package Using the deploy.cmd File上的MSDN帖子解释了您可以在命令中添加“a”标志来设置它。简而言之,这就是它现在的样子(实际上是有效的):

Web.deploy.cmd /Y /M:http://AutoDeploy/MsDeployAgentService /U:AutoDeploy\Administrator /P:...  /A:Basic