我们在 Windows Web Server 2008 R2 上运行 IIS7。它被设置为支持 Web Deploy。当我们使用默认管理员帐户时,它运行良好。我们最近禁用了此帐户(出于安全原因),现在正尝试使用属于管理员组的另一个帐户进行部署。
使用此帐户,部署会失败,错误代码为 401(未授权)。更具体地说,它显示:
使用 Web 部署代理服务连接到“<IP>”,但无法授权。请确保您是“<IP>”上的管理员。远程服务器返回错误:(401) 未经授权。
我该如何解决这个问题?
答案1
嗯,这是一个权利问题:正确的解决方法:
- 单独的用户将他添加到相应的组http://technet.microsoft.com/en-us/library/cc732621%28v=ws.10%29.aspx(IIS 用户)或
- 授予 Windows 组权限http://technet.microsoft.com/en-us/library/cc754009%28v=ws.10%29.aspx
快速修复(不推荐)将您进行部署的 win 用户添加到管理员组。
希望这可以帮助 。
答案2
检查应用程序站点和文件夹的访问权限,转到起始页/服务器(名称)(帐户)/管理。或者转到站点/应用程序管理。
答案3
如果您遇到此问题,可以通过创建以下 Windows 注册表项来解决它:
HKLM:\Software\Microsoft\WebManagement\Server
"WindowsAuthenticationEnabled"
设置"1"
您可以通过将以下行复制到以管理员身份运行的 Powershell 控制台中轻松实现此目的:
$webDeployWindowsAuth = "HKLM:\Software\Microsoft\WebManagement\Server" $winAuthEnabled = "WindowsAuthenticationEnabled" $winAuthValue = "1" if(Test-Path $webDeployWindowsAuth) { New-ItemProperty -Path $webDeployWindowsAuth -Name $winAuthEnabled -Value $winAuthValue -PropertyType DWORD -Force }
然后,检查该密钥是否在 Windows 注册表上成功创建后,您必须重新启动 Web 管理服务,然后才能尝试再次部署您的应用程序。
答案4
如果您查看存储应用程序文件的位置,则可能“管理员”帐户具有访问权限,但“管理员”组从未设置过此类权限。此外,C:\windows\system32\inetsvr 文件夹可能需要写入(因为部署需要更新配置/文件,并且某些应用程序部署会更新事件日志注册表项。仅仅成为管理员组的成员并不总是“万能的”。