【问题标题】:Web Deploy returns 401 unauthorized when publishing via [proj].deploy.cmd通过 [proj].deploy.cmd 发布时,Web 部署返回 401 未授权
【发布时间】:2011-05-10 11:26:43
【问题描述】:

我在使用 Web Deploy 时遇到了一点问题,我似乎无法解决。每次我尝试通过包中的 [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 运行!有什么想法吗?

【问题讨论】:

  • 您应该在输出窗口中查看 VS 正在执行的命令,然后将其与 .cmd 文件正在执行的命令进行比较。如果在输出窗口中看不到命令​​,则在 ools->Options->Projects and Solutions->Build and Run => MSBuild project build output verbosity 中增加详细程度
  • 谢谢赛义德,这让我找到了正确的方向。我会用解决方案回答我自己的问题。
  • 您是否使用 IIS 管理器用户进行部署?在这里查看我的问题:stackoverflow.com/questions/7750800/…

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


【解决方案1】:

上面赛义德的评论让我指出了正确的方向。在将构建输出详细程度设置为“详细”并在 .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

【讨论】:

  • 很高兴你让它工作了,是的,抱歉我忘了指出 UseMSDeployExe。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-14
  • 2012-12-24
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 2021-09-27
  • 1970-01-01
相关资源
最近更新 更多