在global.asax中出错时无法执行server.transfer

时间:2013-08-28 19:12:19

标签: .net global-asax server.transfer

在我的global.asax页面中,我有以下代码:

Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
     server.transfer("err.aspx")
End Sub

它不起作用,我得到以下错误: 对象引用未设置为对象的实例。

提前致谢

1 个答案:

答案 0 :(得分:10)

我建议在.NET中使用内置的错误处理,只需使用Web.config:

<configuration>
  <system.web>
    <customErrors mode="On" defaultRedirect="err.aspx" redirectMode="responseRewrite">
    </customErrors>
  </system.web>
</configuration>

responseRewrite将使其充当Server.Transfer。如果您想要重定向,请使用redirectMode="responseRedirect"

更多信息:

但是,如果你真的想在Global.asax中处理它,你应该使用sender对象:

Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
     Dim app As HttpApplication = CType(sender, HttpApplication)
     app.Server.Transfer("err.aspx")
End Sub