Web服务不可用

时间:2009-06-16 01:55:23

标签: asp.net web-services exception

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

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

  

System.dll

中出现'System.Net.WebException'类型的第一次机会异常

我知道有更好的方法可以解决这个问题,但我正在画空白。

感谢任何帮助。

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


撕开之后,我发现了异常。它是标准的“无法连接”异常。问题是现在是超时,我已经尝试在System.Web下的web.config中将asyncTimeout设置为5000 - >页面属性。抛出异常仍需要20秒。有什么想法吗?

4 个答案:

答案 0 :(得分:1)

如果你看到了“第一次机会异常”,但你的异常处理程序没有得到它,那意味着异常是在其他地方处理的(被吞噬,被异常处理程序使用等)。也许在.NET库中已经有了什么处理了这个异常,您无需在代码中关注它。或许你在代码中的某处吞下了一些异常。

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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

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

祝你好运!

答案 3 :(得分:0)

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