如何解决无法从IIS连接到远程wcf服务
| 我能够从控制台或VS开发服务器上运行的网站/ Web应用程序成功连接到远程WCF服务。但是,当我尝试从IIS托管的网站连接时,出现以下错误。任何想法? 无法建立连接,因为目标计算机主动拒绝了该连接12.11.121.12:80解决方法
这个错误:
由于目标机器主动拒绝连接,因此无法建立连接
意味着连接请求已成功到达给定端口上的目标计算机(这不是防火墙问题),并且目标计算机未在该端口上侦听传入的连接,因此操作系统拒绝了连接尝试。
错误的其余部分标识尝试连接的计算机“ 0”和端口号“ 1”。
该错误表明服务器未在目标计算机上运行。如果您知道您要连接的计算机上正在运行服务器,因为您可以从其他应用程序连接到该服务器,则表明您的连接详细信息在网站中配置错误。
因此,要检查一些事情:
目标Web服务的app.config / web.config配置详细信息之间有什么区别吗?具体来说,计算机名称(12.11.121.12)和端口号(80)似乎很可能。
您是否在与IIS / Web应用程序相同的机器上运行IIS托管的网站?如果不是,那么两台机器是否都解析目标服务器名称(例如,您使用的是“ 2”而不是“ 0”,并且由于一台服务器是面向外部的而另一台是内部的,因此正在将其解析为另一个IP?
,这听起来很像是一个权限(身份验证问题),因为默认情况下,应用程序池在其他用户(计算机)下运行。由于WCF使用身份验证令牌,因此我敢打赌这是您的问题。尝试将池的身份设置为与控制台相同的用户,我敢打赌它会正常工作。
,奇怪的是,当Web应用程序中的useDefaultWebProxy为\“ true \”时,出现了此错误,但是在单元测试类中完全相同的代码和设置也可以正常工作。
事实证明,该Web应用程序正在使用https:// foo / bar:1234的Web浏览器代理(企业策略)。当我明确使用以下方法设置时:
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name=...
useDefaultWebProxy=\"false\" proxyAddress=\"https://foo/bar:1234\"
...
我得到了错误:
ServicePointManager不支持使用https方案的代理
因此,我将代理地址更改为http而不是https,并且可以正常工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。