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运行!有什么想法吗?
最佳答案
赛义德(Sayed)的上述评论使我指出了正确的方向。在将生成输出的详细程度设置为“Detailed”并在.csproj(另一个tip from Sayed's blog)中将UseMsdeployExe设置为true之后,我发现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