Web Deploy发布网站错误,如何检查授权和委派设置问题?
摘要:`Web Deploy ASP.NET IIS服务器`。 自安装 一年以来,一直都用得好好地。 直到最近, 自动发布出了问题,提示: 如图: 我在 上手动发布该 ,点发布时,弹出了 提示框。 我输入密码后,可以成功发布。 我感觉有点奇怪,为
Web Deploy发布ASP.NET网站给我们提供方便,配置好后可以很方便地发布网站到IIS服务器。
自安装Web Deploy一年以来,一直都用得好好地。
直到最近,Gitlab-CI自动发布出了问题,提示:
"C:\Tools\GitLab-Runner\builds\d1af4d14\0\WP\Hallhuber\src\WP.Web.Mvc\1621.WP.Web.Mvc.csproj" (default target) (1) ->
(MSDeployPublish target) ->
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5): msdeploy error ERROR_USER_UNAUTHORIZED: Web deployment task failed. (Connected to the remote computer ("192.168.70.62") using the Web Management Service, but could not authorize. Make sure that you are using the correct user name and password, that the site you are connecting to exists, and that the credentials represent a user who has permissions to access the site. Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_UNAUTHORIZED.) [C:\Tools\GitLab-Runner\builds\d1af4d14\0\WP\Hallhuber\src\WP.Web.Mvc\1621.WP.Web.Mvc.csproj]
17 Warning(s)
1 Error(s)
Time Elapsed 00:00:43.96
Publish completed.
ERROR: Job failed: exit status 1
如图:
我在 Visual Studio 上手动发布该Web项目,点发布时,弹出了"请输入密码以连接到 Web Deploy 客户端"提示框。
我输入密码后,可以成功发布。
我感觉有点奇怪,为什么 Visual Studio 可以正常发布,而 Gitlab-CI 却发布失败,而且 Visual Studio 竟然要输入密码才能发布,我明明把密码写进pubxml发布配置文件里了。
此时我没有多想,我尝试以bat发布命令脚本形式发布Web项目,竟然发布失败了,和 Gitlab-CI 一样地提示"ERROR_USER_UNAUTHORIZED"。
于是,上Bing国际版加上site:stackoverflow.com指令搜索·stackoverflow网站·上的解决方案:
有人说是要在发布命令脚本中多加两个参数/p:UserName=YourName /p:Password=YourPassword,这个我试过,不行。
有人说要使用Windows本地非管理员账户而不是IIS虚拟账户来发布,我创建了一个本地账户,管理员身份和非管理员身份都试过,也不行。
有人说是 Web Deploy 没有完整安装所致:
这里我很纳闷,因为我之前第一次安装 Web Deploy 就是完整安装模式,但安装完后,"Web Deployment Agent Service"服务起不来。
当时没有当一回事,有一次重启Windows 服务器,发现Nginx 服务器起不来了,经过一系列排查,有个叫MsDepSvc的进程占用了80端口,而MsDepSvc进程其实就是"Web Deployment Agent Service"服务。
当时很是气恼又感觉"Web Deployment Agent Service"服务没有什么卵用,想要卸掉它。所以在重新安装 Web Deploy 的时候,选择自定义安装,并且取消勾选"Remote Agent Service"的安装选项,之后一直在愉快的玩 Gitlab-CI。
现在又让我装回去?好吧,只好找一找有没有能够让"Web Deployment Agent Service"服务不占用80端口,又能正常运行与Nginx服务器的方法。
