【问题标题】:Strange .net webservice 503 issue奇怪的.net webservice 503 问题
【发布时间】:2011-09-05 00:07:00
【问题描述】:

我在这里遇到了一个相当奇怪(IMO)的问题,即第三方提供的网络服务。

在实时服务器上调用网络服务时,一切正常。在开发设置中调用它,有时返回一个503 - Service unavailable,其他时候它可以工作。断断续续…… 这两个测试都是从同一个客户端完成的,所以我认为这不是网络级别的问题。

现在,奇怪的是,如果我在 web 服务调用之前的行上放置一个断点,然后跳过调用,它就可以工作。即使通过此断点运行代码(F5)也可以成功。在调用之前添加System.Threading.Thread.Sleep(1000);(以模拟断点)没有任何效果。

我无权访问远程服务器,但我知道它的服务器 2003/IIS 6.0,以及为系统提供 Web 服务接口的公司,声称他们的服务器/软件没有问题。

所以在我认真指责之前,有没有人经历过这样的事情,或者我可以尝试其他什么?

【问题讨论】:

  • 服务器是否负载过重?只有一个客户会发生这种情况吗?
  • @Oded 不,开发服务器上没有负载,实时服务器有点。

标签: .net web-services http-status-code-503


【解决方案1】:

最后,这是由位于我的系统和远程系统之间的上游透明(IP 欺骗)代理上的问题引起的。代理返回 503,但以目标主机为幌子。

我只是侥幸找到了这个,如果我要寻找这种类型的问题,我将如何识别这个问题,因为 http 标头 /raw 转储中没有任何东西跳出来指向这个问题?

【讨论】:

    【解决方案2】:

    可能是服务器在短时间内不接受来自同一客户端的多个请求,以保护自己免受 DoS 攻击。

    在这种情况下,客户端需要对其请求进行限制。因此,请再次与您的服务提供商核实。

    【讨论】:

    • 不幸的是(他们声称)没有这样的事情,如果有的话,我希望在实时系统上运行时会出现同样的行为。
    【解决方案3】:

    503 是来自服务器的错误。它不能来自客户端。

    如果有必要“证明”这一点,那么您需要使用Fiddler 或类似的方式观察网络流量。

    【讨论】:

    • @jasper:如果您了解所有 HTTP 错误代码都来自服务器,并且所有 500 代码都是 由于 到服务器,那么您听起来会更有说服力。
    猜你喜欢
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    相关资源
    最近更新 更多