gpt4 book ai didi

C# ASP.NET HttpModules : HttpApplication Events

转载 作者:太空宇宙 更新时间:2023-11-03 22:26:16 33 4
gpt4 key购买 nike

我的 Web 应用程序中有一个 HttpApplication (Global.asax),我用它来捕获和记录未处理的异常并设置 WebFormURLRouting。这一切都有效,但是我想将这段代码移动到我的应用程序框架中,(即不在 Global.asax.cs 中)

我刚刚尝试在框架中创建一个 HttpApplication 类,但我似乎无法覆盖事件?无论如何,我相信我可以使用 HttpModule 来代替使用这些事件,这样做:

1) 完全消除对 Global.asax 的需求?

2) 这如何影响扩展,即最终在网络场上运行应用程序

3) 我有 HttpHandlers 来处理文件上传和文件下载等其他事情,应该使用多少 HttpModule/HttpHandlers 是否有限制,或者是否应该以某种方式组合它们以减少开销?

感谢任何评论

最佳答案

在 HTTP 模块中监听您从 Global.asax 知道的事件就像在模块的 Init 方法中连接到 HttpApplication 实例的事件一样简单。您不能覆盖 HttpApplication 的方法,您应该监听它的事件。

关于您的其他问题:1) 是的,在我的许多 Web 项目中,我们不使用 Global.asax

2) 这并不真正影响放大。对于场中的每个 Web 服务器,您需要正确连接 HTTPModule。但由于这是在 web.config 中完成的,所以它应该已经存在了。

3) 简短回答:否。对于 httphandlers,它们是根据传入的 http 请求文件扩展名和/或路径以及 HTTP 方法来选择和运行的。在特定处理程序的选择成为性能问题之前,您确实需要很多这些。对于 HttpModules,您可以选择在每次请求时运行一些代码,显然,如果该代码需要时间来运行,将会影响性能。但是需要时间的是您的代码,而不是它是通过 http 模块运行的。

关于C# ASP.NET HttpModules : HttpApplication Events,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1283793/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com