我有一个 .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 。无法连接到远程服务器
请注意,我尝试将 https 替换为 http 并且出现另一个错误:
无法连接到远程计算机(“xxxx”)。在远程计算机上确保安装了 Web Deploy 并启动了所需的进程(“Web 管理服务”)。了解更多信息:http: //go.microsoft.com/fwlink/ ?LinkId=221672#ERROR_USER_NOT_ADMIN 。远程服务器返回错误:(401)Unauthorized
我去了上一个链接,我按照他们的建议做了:
- 在远程计算机上创建一个单独的用户组 MSDepSvcUsers。
- 在本地和远程计算机上创建一个本地帐户 A。
- 将 A 添加到远程计算机上的 MSDepSvcUsers。
- 使用帐户 A 发布,这将允许您发布而无需使用内置管理员帐户。
但仍然存在相同的错误(NOT_ADMIN)
更新: 我找到了另一种可能的解决方案:
添加/修改 Windows 注册表项“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\”并将其设置为“1”。
添加此注册表项后,错误更改为:
站点“http:”不存在...#ERROR_SITE_DOES_NOT_EXIST
所以现在如果我输入错误的凭据,我会得到未经授权的错误,如果我使用正确的凭据,我会得到 side does not exist 错误。
我应该怎么办?
有效!!
我的意思是连接,它现在已经过验证,我所要做的就是将站点名称从“ http://xxxx/PublicFolder ”更改为“Default Web Site\SiteName”!
真的很迷茫,终于明白了!