![单击一次应用程序即可连接到远程服务器](https://linux22.com/image/696972/%E5%8D%95%E5%87%BB%E4%B8%80%E6%AC%A1%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%8D%B3%E5%8F%AF%E8%BF%9E%E6%8E%A5%E5%88%B0%E8%BF%9C%E7%A8%8B%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我有一个 .net 应用程序,它调用部署在 IIS 上的本地 Windows Server 2012 上的 Web 服务,并且 SQL Server 数据库也驻留在该服务器上。由于我们都在同一个域中,因此所有员工都连接到相同的服务和数据库,并且我通过 Visual Studio (2012) 将应用程序和 Web 服务发布到服务器。
现在我需要让员工在公司网络之外访问此应用程序,因此我在我们的一台远程 Windows 2012 服务器上的 IIS 上部署了 Web 服务,我在我的远程服务器中创建了一个公共共享文件夹并将应用程序 Web 服务文件添加到其中,然后在 Visual Studio 中我将发布方法更改为 Web 部署并填写了以下信息:
服务器:https://xxxx/
当我单击“验证连接”时,它失败并显示以下消息:
无法连接到远程计算机(“xxxx”)。在远程计算机上,请确保已安装 Web Deploy 并且已启动所需进程(“Web 管理服务”)。了解更多信息: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_DESTINATION_NOT_REACHABLE。 无法连接到远程服务器
请注意,我尝试用 http 替换 https 但出现另一个错误:
无法连接到远程计算机(“xxxx”)。在远程计算机上,请确保已安装 Web Deploy 并且已启动所需进程(“Web 管理服务”)。了解更多信息: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_NOT_ADMIN. 远程服务器返回错误:(401)未经授权
我转到了上一个链接并按照他们的建议进行了操作:
- 在远程计算机上创建一个单独的用户组 MSDepSvcUsers。
- 在本地和远程计算机上创建本地帐户 A。
- 将 A 添加到远程计算机上的 MSDepSvcUsers。
- 使用帐户 A 进行发布,这样您无需使用内置管理员帐户即可发布。
但同样的错误(NOT_ADMIN)仍然存在
更新: 我找到了另一个可能的解决方案:
添加/修改 Windows 注册表项“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\”并将其设置为“1”。
当我添加此注册表项后,错误变为:
站点‘http:’不存在...#ERROR_SITE_DOES_NOT_EXIST
所以现在如果我输入了错误的凭证,我会收到未经授权的错误,如果我使用正确的凭证,我会收到不存在的错误。
我应该怎么办?