我在Response.Redirect()
global.asax
时遇到运行时异常
结果:
HttpException:在此上下文中无响应。
我尝试过使用,
HttpContext.Current.Response.Redirect()
结果:
NullReferenceExeption:未将对象引用设置为对象的实例。
我知道Global.asax的基本目的是处理,
应用程序级别事件
会话级活动
但我的基本问题是,在Response.Redirect()
文件中使用Global.asax
是一种好习惯吗?
答案 0 :(得分:4)
是的,您可以在Global.asax中使用Response.Redirect
,假设您正在处理有请求的事件(例如开始请求)。
您绝对无法在应用程序级别事件期间使用Request,因为没有HttpRequest.Current
可用。
请注意,虽然在Global.asax中使用此类代码没有什么特别的错误,但通常会将此类重定向代码放入模块中(即经常以HttpModule身份进行身份验证并且有大量重定向),Forms(WebForms)或控制器(MVC),动作属性(MVC)。
答案 1 :(得分:2)
特别是这不是好事或坏事。你究竟想做什么?您提供了一行代码而没有任何上下文。您是否尝试重定向某些类似this question或其他类似的请求?
您获得该异常的原因并不奇怪,因为代码在Begin_Request
之前运行时没有可用的请求上下文。