【问题标题】:Global.asax only run on debug modeGlobal.asax 仅在调试模式下运行
【发布时间】:2012-07-09 04:32:15
【问题描述】:

我在 global.asax application_error 函数上有一个重定向。当我调试时,每个异常都由函数处理。当我在 Web 服务器上运行应用程序时,会出现 IIS 的错误默认页面。我有 IIS7 和 Visual Studio 2005。

最好的问候!

【问题讨论】:

  • @SérgioPinto 使用 server.tranfer("error.aspx");而不是重定向。
  • @Nudier 我的目标是将异常写入日志文件。重定向只是为了了解 Global.asax 是否正在运行。我尝试了 Server.transfer 而不是 Response.Redirect 但它也只在调试时重定向。我不知道是否缺少某些 web.config 标记或 IIS 上的某些配置阻止 global.asax,这可能吗?

标签: c# .net global-asax


【解决方案1】:

IIS 实际上还可以显示第四种错误页面。当您将 HTTP 错误配置为使用自定义错误页面并且 IIS 尝试呈现它时出现问题时,将返回此页面。

当 IIS 在演示应用程序中收到对给定页面的请求时,它会将其传递给 ASP.NET 运行时进行处理。运行时会生成一个响应,然后 IIS 会对其进行检查。如果响应具有作为错误状态代码的 HTTP 状态代码,IIS 可能会采取措施并替换此响应。 - 如果 existingResponse 设置为 PassThrough,则 IIS 不执行任何操作并且 响应原样返回。 - 如果现有响应设置为 替换,IIS 用自己的替换响应,根据 errorMode 属性的值,因此它将替换为 详细的、基本的或自定义的错误页面。 - 如果设置了existingResponse 为 Auto,IIS 将 ASP.NET 生成的响应替换为自己的, 除非设置了称为 SetStatus 标志的东西。 (我会讨论 这篇文章后面的那个标志。)

http://perspectivespace.com/error-handling-in-aspnet-mvc-3-part-2-custom

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-04
    • 1970-01-01
    相关资源
    最近更新 更多