我的问题是:为什么当项目在 Visual Studio 2010 中运行时开发站点可以工作,但在同一台 PC 上从 IIS 提供服务时却不能工作?
我正在尝试建立客户网站的开发副本。启动时,站点会连接到远程数据库服务器。该连接使用 WCF 和 SSL 证书来保护它。当我在我的 PC 上安装该站点时,按照说明,我将证书链安装到“受信任的根证书颁发机构”中,并添加了注册表项和主机条目以解析与远程服务的连接。
当我在我的 PC 上的 Visual Studio 2010 中打开解决方案并在内置的 ASP.NET 开发服务器中运行它时,它起作用了——我的工作站通过自定义端口 (444) 上的 SSL 连接到远程服务,并且开发站点从服务中成功查询数据。所有这些都由项目提供的 DLL 处理,并且超出了我的工作范围。我事先被告知连接对 SSL 证书、两台机器之间的系统时钟时间协议(protocol)等非常挑剔,我试了几次才让它工作。
但是,当我在本地 IIS(Windows 7、IIS 7.5)中运行该站点时,该站点无法连接到远程服务;该服务不接受 SSL 连接。发生这种情况时,启动代码会抛出异常,从而阻止网站进一步加载。
其他一切似乎都工作正常:唯一的问题是 VS 需要 32 位版本的安全连接 DLL,而 Windows 7 上的 IIS 需要 64 位版本。两者都提供给我,我根据需要交换它们。
最佳答案
根据评论,答案是:检查证书链(以信任 WCF 连接使用的 SSL 证书)是否安装到本地计算机(以便 IIS 看到它),而不仅仅是当前用户(使用的帐户) Visual Studio )。
关于ASP.NET 站点通过 SSL 从 Visual Studio 而不是 IIS 连接到远程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8749221/