我能够从控制台或VS dev服务器上运行的网站/ web应用程序成功连接到远程WCF服务。但是,当我尝试从IIS托管的网站连接时,我收到以下错误。有什么想法吗?
无法建立连接,因为目标计算机主动拒绝了它12.11.121.12:80
答案 0 :(得分:4)
此错误:
无法建立连接,因为目标计算机主动拒绝它
表示连接请求已成功通过目标计算机(不是防火墙问题),在给定端口上且目标计算机未侦听该端口上的传入连接,因此操作系统拒绝连接尝试
您的其他错误标识了尝试连接的计算机12.11.121.12
和端口号80
。
该错误表示服务器未在目标计算机上运行。如果您知道服务器正在您尝试连接的计算机上运行,因为您可以从其他应用程序连接到该服务器,这表明您的连接详细信息在网站中配置错误。
所以,有些事要检查:
someserver.org
而不是12.11.121.12
并且它正在被解析为另一个IP,因为一台服务器面向外部,另一台服务器是内部服务器? 答案 1 :(得分:0)
这听起来很像权限(身份验证问题),因为默认情况下应用程序池在不同的用户(计算机)下运行。由于WCF使用身份验证令牌,我敢打赌这是你的问题。尝试将池的标识设置为与控制台相同的用户,我敢打赌它可以正常工作。
答案 2 :(得分:0)
奇怪的是,当useDefaultWebProxy从Web应用程序“真实”时出现此错误,但完全相同的代码和设置在单元测试类中正常工作。
事实证明,Web App正在使用https://foo/bar:1234的网络浏览器代理(公司政策)。当我使用:
明确地设置它时<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name=...
useDefaultWebProxy="false" proxyAddress="https://foo/bar:1234"
...
我收到了错误:
ServicePointManager不支持具有https方案的代理
所以我将代理地址更改为http,而不是https,并且工作正常。