我想在我的 asp.net 应用程序(v 3.5,visual studio 2008)中集成一些 http 模块,但我不确定在运行 web 时触发的 asp.net 开发服务器中调试时如何调试或使用这些模块应用程序。
我需要在解决方案中包含模块源还是可以将 DLL 放入 BIN 中?我来自 1.1 世界,还不习惯 asp.net 开发服务器。
最佳答案
按照以下步骤添加 HTTP 模块:
MyModule
的新 Visual Studio .NET C# 类库项目. System.Web.dll
的引用部件。 using System.Web;
SyncModule.cs
,然后更改类定义以反射(reflect)这一点。 IHttpModule
界面。您的类定义应如下所示:public class SyncModule : IHttpModule
HttpApplication
中的可用事件。您可以订阅的对象:AcquireRequestState
: 调用此事件,允许模块获取或创建请求的状态(例如, session )。 AuthenticateRequest
:当安全模块需要在处理请求之前对用户进行身份验证时调用此事件。 AuthorizeRequest
: 当请求需要被授权时,由安全模块调用此事件。认证后调用。 BeginRequest
:调用此事件以通知模块新请求正在开始。 Disposed
:调用此事件以通知模块应用程序由于某种原因而结束。允许模块执行内部清理。 EndRequest
:调用此事件通知模块请求正在结束。 Error
:调用该事件通知模块在请求处理过程中发生的错误。 PostRequestHandlerExecute
:调用此事件通知模块处理程序已完成对请求的处理。 PreRequestHandlerExecute
:调用此事件通知模块该请求的处理程序即将被调用。 PreSendRequestContent
:调用该事件通知模块内容即将发送给客户端。 PreSendRequestHeaders
: 调用该事件通知模块HTTP头即将发送给客户端。 ReleaseRequestState
:调用此事件以允许模块释放状态,因为处理程序已完成处理请求。 ResolveRequestCache
: 认证后调用此事件。缓存模块使用此事件来确定请求是否应由其缓存处理,或者处理程序是否应处理该请求。 UpdateRequestCache
:在处理程序响应后调用此事件。缓存模块应该使用响应更新它们的缓存。 public void Init(HttpApplication app)
{
app.BeginRequest += new EventHandler(OnBeginRequest);
}
public void Dispose(){ }
public delegate void MyEventHandler(Object s, EventArgs e);
MyEventHandler
类型的私有(private)局部变量持有对事件的引用:private MyEventHandler _eventHandler = null;
HttpApplication
的类中的方法。目的:public event MyEventHandler MyEvent
{
add { _eventHandler += value; }
remove { _eventHandler -= value; }
}
OnBeginRequest
方法,它连接到 BeginRequest
HttpApplication
的事件:public void OnBeginRequest(Object s, EventArgs e)
{
HttpApplication app = s as HttpApplication;
app.Context.Response.Write("Hello from OnBeginRequest in custom module.<br>");
if(_eventHandler!=null)
_eventHandler(this, null);
}
来源:http://support.microsoft.com/kb/307996
将 HTTP 模块添加到您的
web.config
将如下所示:<system.web>
<httpModules>
<add name="CustomHttpModule" type="MyCustomHttpModule"/>
</httpModules>
</system.web>
关于asp.net - 在 asp.net 开发服务器上调试 httpmodule,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/679559/