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

Tro*_*unt 13 msbuild visual-studio-2010 msdeploy visual-studio

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

Web.deploy.cmd /Y /M:https://AutoDeploy:8172/MsDeploy.axd -allowUntrusted
Run Code Online (Sandbox Code Playgroud)

我可以通过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:...
Run Code Online (Sandbox Code Playgroud)

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

Tro*_*unt 11

Sayed上面的评论让我指出了正确的方向.在构建输出详细程度"详细"并在.csproj中设置UseMsdeployExe为真(来自Sayed博客的另一个提示)之后,我发现Visual Studio生成的命令将身份验证类型设置为基本的,回顾性地,明显是给定的文本用户名和密码.

关于如何:安装部署包的MSDN帖子使用deploy.cmd文件解释了您可以在命令中添加"a"标志来设置它.简而言之,现在它的外观(实际上是如此):

Web.deploy.cmd /Y /M:http://AutoDeploy/MsDeployAgentService /U:AutoDeploy\Administrator /P:...  /A:Basic
Run Code Online (Sandbox Code Playgroud)