是否有人有任何关于HTTP状态代码(200,404,500等)在IIS管道中首次可用的信息?我正在尝试编写一系列用于错误处理目的的http模块和处理程序,我并不特别希望复制请求/响应以获取值。
答案 0 :(得分:0)
看看这里的任何活动,然后选择:)
http://msdn.microsoft.com/en-us/library/ms693685(v=vs.90).aspx
理论上,状态代码可以由管道中的任何http模块更改;它只取决于他们订阅了哪些事件。
例如,授权模块可以订阅OnAuthorizeRequest
方法,并在那时执行其逻辑,并在需要时更改状态代码。在另一种情况下,经典ASP应用程序可以作为处理程序运行,并且在OnPostExecuteRequestHandler
之前您将无法确定状态代码是否为500。最后,日志记录模块中的错误可能会生成500,直到请求处理接近完成才会生成(OnLogRequest
)
更复杂的是,一些处理程序可能会在执行期间吐出无缓冲的数据,因此它可能位于任何OnSendResponse
事件中,这些事件没有按任何特定顺序排列,并且状态代码可能在响应。
所以,这实际上取决于你为了有效地解决这个问题而想要实现的目标。如果您能提供更多细节,也许我们可以制定解决方案。