网站调用webservice时出现EndpointNotFoundException错误,但控制台应用程序没有出现该错误。

3

当我从网站调用webservice时,出现了EndpointNotFoundException的错误,但如果我从控制台应用程序中进行相同的调用,则可以正常工作。

以下是更详细的异常信息:

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.configapp.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>

如果您需要更多详细信息,请告诉我。

编辑
好的,这里有一些我忘记说的可能会导致问题的内容。所有这些都发生在公司防火墙后面。 是否因为该防火墙阻止了从现有“Web进程”生成的HTTP连接在网站上运行,而在控制台应用程序中只是单个连接?


网站在哪里?与控制台应用程序在同一台机器上吗? - Aaronaught
是的,它们都在同一台机器上运行。但 Web 服务并不在同一台机器上。 - Farinha
3个回答

4
您需要在web.config中添加一个代理服务器的绕过设置。
  <system.net>
    <defaultProxy>
      <proxy
      usesystemdefault = "true"
      proxyaddress="http://theproxyaddress:PortNumber"
      bypassonlocal="false"
/>
    </defaultProxy>
  </system.net>

这将允许您通过防火墙连接到服务。

0
你尝试过使用Wireshark(或者如果是HTTP,使用Fiddler)来查看出站调用是否等效和正确吗?

你知道最奇怪的事情是什么吗?我安装了 Fiddler,当程序运行时,它可以工作!但一旦我关闭 Fiddler,就会再次出现超时问题... - Farinha

0

听起来像是权限问题。

您的 Web 应用程序通常以 ASPNET 或 NETWORK SERVICE 运行,而您的控制台应用程序将作为您自己(您的帐户)运行。

有没有可能存在问题?

您在 WCF 服务器端进行任何身份验证吗?这可能适用于普通用户帐户,但不适用于 ASPNET / NETWORK SERVICE 帐户?


我能想到的唯一可能是安全模式,但我已经尝试将其更改为“无”,但仍然出现相同的错误。 - Farinha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接