【问题标题】:Webservice unavailable网络服务不可用
【发布时间】:2010-11-03 05:06:12
【问题描述】:

我有一个 ASP.NET C# 3.5 Web 应用程序,它使用另一个 ASP.NET Web 服务作为 Web 引用。 Web 服务内置于某些专有硬件设备中。问题是该设备一直存在问题并且无法始终访问。我的 Web 应用程序因此而受苦,因为它需要一分钟多的时间才能加载。它确实加载,但不可接受。

服务在 try catch 块中实例化,没有抛出异常,但输出窗口显示:

System.dll 中发生了“System.Net.WebException”类型的第一次机会异常

我知道有更好的方法来处理这个问题,但我正在画空白。

感谢任何帮助。

更新:仍在寻找有关如何在不影响网站的情况下处理不可用的网络服务的答案。


拆开后发现异常。这是一个标准的“无法连接”异常。现在的问题是超时,我尝试在 System.Web -> Pages 属性下的 web.config 中将 asyncTimeout 设置为 5000。抛出异常仍然需要大约 20 秒。有什么想法吗?

【问题讨论】:

    标签: asp.net web-services exception


    【解决方案1】:

    如果您看到“第一次机会异常”但您的异常处理程序没有得到它,这意味着该异常已在其他地方处理(被吞下、被异常处理程序消耗等)。也许 .NET 库中的某些内容已经处理了该异常,您无需在代码中关注它。或者,也许您在代码中的某个地方留下了一些异常。

    您应该考虑在您的网络请求中使用超时。

    【讨论】:

      【解决方案2】:

      简单的解决方案,页面加载后使用 JavaScript 轮询服务。

      【讨论】:

        【解决方案3】:

        没有关于服务频率/使用的任何细节,也没有看到任何代码,这里有一两个想法。

        这很可能是这个硬件上的网络方法给出了错误,所以我会寻求你有的任何支持选项(如果有的话),但只是为了咯咯笑,先试试这个看看它是否有帮助....

        我注意到网上有些人说他们能够通过在请求对象上将 KeepAlive 设置为 false 来解决这个问题(在他们的场景中),这样这样您就不会无意中使用旧的(陈旧的)连接到服务。您可能正在尝试“保持活动状态”,但网络服务器使您的连接超时。值得一试...

        祝你好运!

        【讨论】:

        • 有错误的代码要显示,我知道问题所在。服务不可用。我正在寻找更多关于如何处理服务以免影响我的应用程序。基本上我想在可用时使用该服务,并在没有它的情况下优雅地降级。希望这能澄清一些事情。感谢您的帮助
        【解决方案4】:

        除了上述之外,我还会使用 http 调试器(如 fiddler2)来更好地了解网络上发生的情况。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-07-28
          • 2014-03-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-16
          • 2015-07-15
          • 1970-01-01
          相关资源
          最近更新 更多