代码之家  ›  专栏  ›  技术社区  ›  Troy Hunt

通过[proj].Deploy.cmd发布时,Web Deploy返回401 unauthorized

  •  13
  • Troy Hunt  · 技术社区  · 14 年前

    我在Web部署方面有点问题,我似乎无法解决。每次我试图通过包中的[proj].deploy.cmd命令发布到WMSvc时,我都会得到“远程服务器返回了一个错误:(401)Unauthorized”。命令如下所示(项目名为“Web”,服务器名为“AutoDeploy”):

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

    我可以把罚款发到 https://AutoDeploy:8172/MsDeploy.axd 通过Visual Studio,服务肯定在运行,我可以作为管理员成功地向它进行身份验证。以管理员身份登录(只是一点本地Win 2k8 VPC)时,在计算机上对包本地运行此操作不起作用,使用管理员帐户添加/U和/P参数不会起任何作用。

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

    出于兴趣,我可以将fine发布到Web部署代理服务(MsDepSvc),如下所示:

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

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

    1 回复  |  直到 14 年前
        1
  •  11
  •   Troy Hunt    14 年前

    赛义德上面的评论让我指出了正确的方向。在.csproj(另一个 tip from Sayed's blog ),我发现Visual Studio生成的命令正在将身份验证类型设置为basic,这在给定纯文本用户名和密码的情况下是显而易见的。

    上的MSDN帖子 How to: Install a Deployment Package Using the deploy.cmd File 说明只需在命令中添加“a”标志即可设置此值。简言之,这就是它现在的样子(实际上是工作的):

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