【问题标题】:How to catch 500 internal server error in c#如何在 C# 中捕获 500 内部服务器错误
【发布时间】:2010-10-19 11:04:58
【问题描述】:

我正在使用谷歌分析仪表板控件,可在

获得
http://gadashboardcontrols.codeplex.com/

问题是当我连接到互联网时它工作正常,但如果我在没有互联网访问权限的机器上使用它,那么它会显示

Server Error in '/' Application.
The remote name could not be resolved: 'www.google.com' 

我想捕捉这个异常并向用户显示一条友好的消息。我在这样的 iframe 中的视图上调用这些仪表板控件

<iframe src="../../GoogleAnalytics/Visitor.aspx" height="275"></iframe>

如果我在 Visitor.aspx 页面中放置 try catch,它不会捕获异常。我应该如何捕捉这个异常,我使用 asp.net mvc 2 和 c#

【问题讨论】:

    标签: c# asp.net asp.net-mvc exception


    【解决方案1】:

    您无法捕获此异常,因为问题发生在浏览器中而不是服务器上。您无法通过 aspx 代码对此进行控制。

    【讨论】:

    • 服务器上确实发生了该错误,但由于超出了调用代码的范围,因此无法捕获。
    【解决方案2】:

    您可以改为检查网络连接并在用户离线时在页面中提供替代内容。调查 System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable() 这个。

    没有很好的方法来捕获这个异常,因为您使用的是 iframe,并且页面是在浏览器中加载的,而不是通过代码加载的。有一些技巧可以做到这一点,但不那么可靠。

    【讨论】:

      【解决方案3】:

      错误是服务器端的,所以实际上应该尝试在您的代码中修复它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-06
        • 1970-01-01
        • 1970-01-01
        • 2019-01-17
        相关资源
        最近更新 更多