在我的global.asax中,我正在检查404,并按照以下内容转移到404错误页面:
If HTTPExceptionInstance.GetHttpCode = 404 Then
Server.ClearError()
Response.TrySkipIisCustomErrors = True
Response.Status = "404 Not Found"
Server.Transfer("~/Invalid-Page.aspx")
End If
问题是,我的Invalid-page.aspx使用了一些会话代码(会话(“somevariable”)),这会引发异常“会话状态只能在enableSessionState为时使用在配置文件或Page指令中设置为true。“因为我使用的是server.transfer(我相信这是一个已知问题?)。
如果我使用Response.Redirect,则会出现无问题。但是,这意味着错误页面的标题是200,而不是404.
对此最好的解决方法是什么?
答案 0 :(得分:3)
奇怪! Server.TransferRequest完全符合我的要求而不会丢失会话状态!
答案 1 :(得分:0)
检查Invalid.aspx的页面指令中的EnableSessionState是否设置为true