首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IHttpModule和线程化

IHttpModule和线程化
EN

Stack Overflow用户
提问于 2012-08-01 23:33:24
回答 1查看 288关注 0票数 1

我有一个实现IHttpModule的类。这是一个帮助我的应用程序抵御DDOS攻击的支持类。在实现BeginRequest方法之后,我尝试调试代码,由于某些原因,每次调试该类时,Visual studio中都有多个线程。我不明白为什么突然间,当我在本地机器上运行这个应用程序时,我得到了几个线程,而且这种情况只发生在这个类中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-02 00:31:03

HttpModule可能会拦截对应用程序的所有请求,包括文件(js、css、图像等)。

查看每个请求的request对象,并查看Url属性以了解发生了什么。

编辑: HttpModules在请求流的早期是活跃的,它们经常会被服务器的大多数请求击中,所以要将HttpModule中的代码保持在最少。例如:如果您正在对文件进行权限设置,请确保请求实际上正在命中文件(即。请求的url以/files/开头)。只要有可能,缓存数据以便在HttpModules中使用,不要为HttpModule中的每个请求都去数据库!

在实际应用程序中命中率较低的原因可能是,即使是对图像、js文件、css文件等的请求也可能在HttpModule中命中,但在您的应用程序中,只有对应用程序的请求才会命中您的中断点( Web Forms的aspx、asmx等)和ASP.NET MVC中的可识别路由。

要了解您在HttpModule中处理的请求,请查看url变量的值:

代码语言:javascript
复制
void context_BeginRequest(object sender, EventArgs e) {
    HttpApplication app = (HttpApplication)sender;
    String url = app.Request.Url.OriginalString;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11762656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档