< TLDR>
与WebDeploy未经授权的错误它是在所有可能的使用MS网络部署到从命令行部署Web应用程序到远程主机与非管理员用户?
</TLDR>401使用非管理员用户
我已遵循微软指南中的每一点Installing and Configuring Web Deploy。我的目标是能够使用IIS用户/非管理员用户进行远程Web部署。
做的所有步骤下所描述的安装和配置网络部署非管理员部署后,我得到以下日志消息(表明一切正常):
Publish enabled for 'deploy_user'
Granted 'deploy_user' full control on 'C:\inetpub\wwwroot'
Successfully created settings file 'C:\Users\...\Desktop\deploy_user_Default Web Site.PublishSettings'
接下来,当我从我的本地机器上尝试运行以下命令:
.\my_deploy_package.cmd /M:https://machine_name:8172/msdeploy.axd -allowUntrusted /U:deploy_user /P:deploy_password /A:Basic /T
我得到一个错误消息说:错误:远程服务器返回错误:(401)未经授权。
如果我在目标机器上进入事件查看器>自定义视图> Administratove活动,我看到一个“匹配”的错误此消息:
IISWMSVC_AUTHORIZATION_SERVER_NOT_ALLOWED
Only Windows Administrators are allowed to connect using a server connection. Other users should use the 'Connect To Site or Application' task to be able to connect.
Process:WMSvc User=deploy_user
此错误是完全一样的,如描述this question。并且accepted answer表明我已经完成的是正确的方法。
我尝试了几种建议的解决方法,如this,但没有任何东西似乎有所帮助。管理服务设置为允许远程连接(包括Windows和IIS管理器),并且我为内置Windows用户(非管理员)和IIS管理员用户运行配置,但仍然出现相同的错误。只要我以管理员用户运行deploy命令,就会成功。
我上午允许通过与我的非管理员deploy_user用户的IIS GUI远程连接(在IIS:连接至站点> [服务器URL]/[站点名称]> deploy_user/deploy_password),这表明必要的权利和规则被配置。但是,当我尝试运行部署脚本命令行时 - 用同一用户 - 它失败。
如果它实际上是作为错误信息表明,任何非管理员用户可以只使用连接到站点或通过IIS管理器应用,什么是那么推荐的方法做部署这样的从命令行/构建服务器?我真的不想在生成服务器的配置文件中以明文形式输入管理员用户的用户名/密码...
我发现这个工作的一个选择是,如果您的构建服务器和您尝试部署的计算机具有通用的Active Directory(或其他共享用户的方式),则可以跳过/A:Basic
标志,并完全忽略用户名和密码。您只能确保运行部署的用户对部署目标也具有管理员权限。但是,在我们的一种情况下,构建服务器和部署目标并不是有一个共同的用户群,所以这不是一个选项,我们回到用户名/密码以明文形式 - 这是不可取的在所有。
或许这可以帮助? http://stackoverflow.com/questions/2874939/how-to-use-msdeploy-and-target-a-specific-site –
@EladLachmi:你已经链接到的帖子中的建议正是我所做的(请参阅我的问题中的第三段之后的输出_“完成...下所述的所有步骤后”)。 – Nailuj
对,现在我明白了。抱歉。 –