Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ASP.NET中捕获自定义错误_C#_Asp.net_Custom Errors - Fatal编程技术网

C# 在ASP.NET中捕获自定义错误

C# 在ASP.NET中捕获自定义错误,c#,asp.net,custom-errors,C#,Asp.net,Custom Errors,我在web.config中有以下条目: <customErrors mode="RemoteOnly" defaultRedirect="Error.aspx" /> 在Error.aspx.cs中是否有方法获取错误详细信息以便保存到文件?您可以使用Server.GetLastError()获取引发的最后一个异常对象: Exception exception = Server.GetLastError(); 或者,您可能希望在Application_Error方法的globa

我在web.config中有以下条目:

<customErrors mode="RemoteOnly" defaultRedirect="Error.aspx" />


在Error.aspx.cs中是否有方法获取错误详细信息以便保存到文件?

您可以使用Server.GetLastError()获取引发的最后一个异常对象:

Exception exception = Server.GetLastError();
或者,您可能希望在Application_Error方法的global.asax文件中查看如何处理此问题,而不是查看自定义错误页面。

本文介绍了几种不同的自定义错误处理和报告方法

您可以配置日志框架将其保存到文件中。任何框架都可以,但让我在这里插入自己的框架:-)

使用,您可以配置一个
HttpModule
(随库提供),该模块将自动将异常信息转发到日志记录系统。配置
XmlFileLoggingProvider
时,您将能够写入文件。应用程序中不需要任何更改。以下是一个配置示例:

<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="logging" 
        type="CuttingEdge.Logging.LoggingSection, CuttingEdge.Logging" />
  </configSections>
  <logging defaultProvider="XmlLogger">
    <providers>
      <add name="XmlLogger"
     type="CuttingEdge.Logging.XmlFileLoggingProvider, CuttingEdge.Logging"
        path="log.xml" 
      />
    </providers>
  </logging>
  <system.web>
    <httpModules>
      <add name="ExceptionLogger"
type="CuttingEdge.Logging.Web.AspNetExceptionLoggingModule, CuttingEdge.Logging"/>
    </httpModules>
  </system.web>
</configuration>

您只需将
CuttingEdge.Logging.dll
添加到应用程序的bin文件夹中,并包含此配置,就可以了


关于CuttingEdge.Logging
AspNetExceptionLoggingModule
的好处在于,它不仅会记录请求期间引发的异常,还会记录来自后台线程的故障,并导致AppDomain循环。后者是其他日志框架所不支持的现成功能。

我建议使用ELMAH进行错误日志记录,如果这正是您想要的。它提供应用程序中发生的任何未处理错误的所有详细信息,并将其记录到数据库/textfile中。它还有一个功能强大的报告工具,可以向您显示记录的错误的所有信息,包括死亡黄屏。它还为您提供了在错误发生时向您邮寄错误的灵活性。最后,只需在web.config中添加一些配置即可使其运行

但是,如果您也对显示用户友好的屏幕感兴趣,则需要在global.aspx中配置该应用程序中的错误