【问题标题】:WebService Exception when not using fiddler tool不使用提琴手工具时出现WebService异常
【发布时间】:2014-07-23 21:16:55
【问题描述】:

继续下面的问题。
WebService Exception- The underlying connection was closed: An unexpected error occurred on a send

Step1 - 如果我打开 Fiddler 工具来解决上述问题,我会收到来自客户端的 xml 响应。

第 2 步 - 如果我关闭 Fiddler 工具,则会看到错误为“底层连接已关闭:发送时发生意外错误”

关于这个问题,我也联系了我的网络团队,他们说,这种通信没有发生阻塞。

提琴手工具 OPEN 和 CLOSE 的代码相同会导致什么问题?
请从这个问题中放松一下。

请参阅下面附加的代理服务器设置

【问题讨论】:

  • 你如何调用服务(即客户端)?您是否设置了代理服务器?
  • @DavidG,是的,我已经为我的 LAN 设置了代理服务器。
  • 那么我怀疑这就是问题所在。在您的客户端中您是否指定了代理设置?
  • 我的客户端服务器不在我的公司。我不确定他们在用什么。注意 - 如果我从公司网络外尝试,此代码有效。我也可以从同一个 BOX(开发服务器)IE 浏览器浏览此服务。

标签: c# web-services wcf iis fiddler


【解决方案1】:

您的客户端应用程序需要代理设置。从您的网络管理员处获取设置并将它们放入您的应用程序配置文件中,并使用 defaultProxy 元素:

<configuration>
  <system.net>
    <defaultProxy>
      <proxy usesystemdefaults="true" proxyaddress="http://your-network-proxy:port" bypassonlocal="true"/>
      <bypasslist>
        <add address="some-internal-server" />
      </bypasslist>
    </defaultProxy>
  </system.net>
</configuration>

【讨论】:

  • 请查看添加了代理设置图片的更新帖子,我们在同一行吗?
  • 您需要按高级才能看到代理设置。
  • 您的回答与我的解决方案类似,但我们通过允许防火墙阻止来解决。
【解决方案2】:

请参阅http://blogs.telerik.com/fiddler/posts/13-02-28/help!-running-fiddler-fixes-my-app-,了解 Fiddler “自动”修复的一些常见问题原因。

最常见的问题是您在调用GetResponseStream() 的结果时忘记调用Close()

您也可能在 .NET Framework 中遇到问题,即它不希望设置了 KeepAlive 属性的 HttpWebRequest 在单个请求后关闭服务器端连接,因此会抛出发生这种情况时例外。我认为这是 .NET 中的一个错误(因为 HTTP 规范允许随时关闭)。如果这是您的问题,您可以捕获异常并重试,也可以通过禁用请求对象的 KeepAlive 属性来解决该问题。

【讨论】:

    【解决方案3】:

    但是,此问题已解决。正如我所怀疑的那样,我们在网络上遇到了防火墙阻止。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-13
      • 2023-03-06
      • 1970-01-01
      • 2014-01-04
      相关资源
      最近更新 更多