首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ihttpmodule,Ihttphandler .NET

Ihttpmodule,Ihttphandler .NET
EN

Stack Overflow用户
提问于 2010-07-25 04:23:29
回答 1查看 349关注 0票数 0

我对HttpModule和HttpHandler有一些疑问,请帮我澄清一下

1)在HttpModule中,我注意到初始化方法只调用了一次。调用每个请求的context_BeginRequest和context_EndRequest etc方法。是否保证对于一个模块,Init将为不同的用户(或不同的请求)调用一次,而BeginRequest等将每次为不同的用户(或不同的请求)调用?

2)由于可能存在多个应用程序对象,Application_Start(global.asax)是否有可能多次运行

3)由于应用程序对象可能不同(与应用程序池不同),在这种情况下,如何在不同用户之间共享应用程序数据?

4)在HttpHandler中,ProcessRequest方法将为每个请求(或为每个用户)调用。

谢谢Ritu

EN

回答 1

Stack Overflow用户

发布于 2010-07-25 04:33:16

“是否保证对于一个模块,初始化将为不同的用户(或不同的请求)调用一次,而BeginRequest等将每次为不同的用户(或不同的请求)调用?”

init方法将在应用程序池启动/应用程序第一次启动时调用。这是模块被加载的时候。

每次应用程序开始处理新的BeginRequest请求时,都会调用HTTP方法。

“2) Application_Start(global.asax)是否有可能多次运行,因为可能有多个应用程序对象”

特定文件夹中不存在多个应用程序。IIS不是这样工作的。每个应用程序只有一个global.asax,并且Application_Start只会为每个应用程序调用一次,除非重置应用程序池。

"3)由于应用程序对象可能不同(与应用程序池不同),在这种情况下,如何在不同用户之间共享应用程序数据?“

取决于您存储此应用程序数据的位置以及使用什么来检索它。我不知道你是什么意思。会话数据的作用域应该是单个应用程序(当然是进程内会话状态服务器,如果配置正确的话,也可以用于进程外会话状态服务器)

"4)在HttpHandler中,ProcessRequest方法将为每个请求(或为每个用户)调用。“

可以,但仅适用于映射到您的处理程序的请求。相反,可以为所有请求调用HttpModule。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3326748

复制
相关文章

相似问题

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