13

我在使用 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 参数没有任何作用。

我已经启用了失败的请求跟踪并得到了这个输出,所以至少有一些东西可以参考,但不幸的是我无法确定根本原因是什么。我正在尝试使用与 Visual Studio 中相同的凭据连接到相同的服务,但显然有些不同。

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

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

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

4

1 回答 1

11

上面赛义德的评论让我指出了正确的方向。在将构建输出详细程度设置为“详细”并在 .csproj 中将 UseMsdeployExe 设置为 true 之后(Sayed 博客中的另一个提示),我发现 Visual Studio 生成的命令将身份验证类型设置为基本,回想起来,这是显而易见的文本用户名和密码。

关于如何:使用 deploy.cmd 文件安装部署包的 MSDN 帖子解释说,您可以在命令中添加一个“a”标志来设置它。简而言之,这就是它现在的样子(实际上是这样):

Web.deploy.cmd /Y /M:http://AutoDeploy/MsDeployAgentService /U:AutoDeploy\Administrator /P:...  /A:Basic
于 2010-11-17T02:48:19.167 回答