我明白了EndpointNotFoundException
在来自网站的 Web 服务调用上,而如果我从控制台应用程序执行此操作,则同样的调用也有效。
以下是更详细的异常消息:
Could not connect to https://******. TCP error code 10060:
A connection attempt failed because the connected party did not properly
respond after a period of time, or established connection failed because
connected host has failed to respond ***.***.***.***:443.
我已经确认绑定(在web.config
and app.config
)是相同的,所以我不明白为什么它在一种情况下有效,而在另一种情况下无效。
<basicHttpBinding>
<binding name="ServicePortBinding" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="Transport">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
如果您需要更多详细信息,请告诉我。
EDIT
好的,这是我遗漏的一些可能导致问题的内容。这一切都发生在公司防火墙后面。
难道说防火墙阻止它从网站运行,因为它是从现有的“Web 进程”产生的 HTTP 连接?而在控制台应用程序中,它只是一个连接。
您需要在 web.config 中添加代理旁路
<system.net>
<defaultProxy>
<proxy
usesystemdefault = "true"
proxyaddress="http://theproxyaddress:PortNumber"
bypassonlocal="false"
/>
</defaultProxy>
</system.net>
这将允许您通过防火墙打开与该服务的连接
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)