显示详细的错误消息

时间:2012-03-15 17:26:37

标签: c# asp.net exception iis-7 asp.net-4.0

我有一个小Try Catch块,当无效数据传递给我的应用程序时会告诉用户更详细的信息:

try
{
    //do something that throws an exception because of invalid data
}
catch (Exception ex)
{
    throw new Exception("You have invalid data");
    //throw ex;
}

当我使用无效数据在本地运行应用程序时,它会按预期抛出Exception

You have invalid data

然而,当我将它发布到服务器时,它只会像这样抛出Exceptions同样的错误:

There was an error processing the request.

我仍然可以使用有效数据运行代码,因此我知道其他所有内容都正常运行。

我还需要添加其他内容web.config吗?

这就是我现在所拥有的:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <httpErrors errorMode="Detailed" />
    <asp scriptErrorSentToBrowser="true"/>
</system.webServer>

1 个答案:

答案 0 :(得分:0)

您不应该以这种方式显示您的网站访问者例外。

如果您要验证用户数据,请在用户界面级别使用form validation进行验证。

Exceptions are for dealing with exceptional circumstances。如果您的数据不是来自您的用户但导致某些特殊情况,那么您的用户可能不需要知道详细信息。在这种情况下,通常会显示一个页面,其中包含某种通用的“技术错误”消息,该消息为此问题道歉,并确保有人正在调查此问题。

如果要在开发期间查看服务器上的例外详细信息,则应在web.config中将自定义错误设置为off

<system.web>
    <customErrors mode="Off">
    </customErrors> 
</system.web>