On error in global.asax can't do server.transfer

3.4k Views Asked by At

In my global.asax page I have the following code:

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

It does not work and I get the folowing error: Object reference not set to an instance of an object.

Thanks in advance

1

There are 1 best solutions below

1
On

I would recommend using the built-in error handling in .NET for this, just use Web.config:

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

The responseRewrite will make it act as a Server.Transfer. If you want a redirect instead, use redirectMode="responseRedirect".

More info here:

However, if you really want to handle it in Global.asax, you should use the sender object:

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