我想通过Httpmodule代理类来注册管道事件,可惜没效果,而且找不到原因,求大家指点。
webconfig配置是在<system.web>下配置的,配置如下
<httpModules> <add name="HttpUploadModule" type="UploadDemo.HttpUploadModule, UploadDemo" /> </httpModules>
代理类代码如下
public class HttpUploadModule:IHttpModule { public void Init(HttpApplication context) { context.BeginRequest += new EventHandler(this.Application_BeginRequest); //application.BeginRequest += new EventHandler(this.Application_BeginRequest); context.Response.Write("这是初始化"); } }
这么注册的,就是无效果,也不报错
要在web.config里注册。
我是在webconfig文件里面注册的,第一段代码就是我列举的关键代码。
@ShowStyle: 我眼花了~~~程序集的名称是“UploadDemo.dll"不?你的代码是应用程序第一次运行时注册的。有没有效果,你要在事件里调用设置个断点试试。
另外可以通过context.Modules看你的模块注册进去了没有。
@路过秋天: 我在Httpmodule代理类中监视了Init事件,没有进来,在页面上也不会显示任何我输出的文字
@ShowStyle: context.Modules看你的模块注册进去了没有,先去查下这个。
@路过秋天: 你的意思是在action方法里面设置断点监视这个嘛
@ShowStyle: 调试mvc3的源码。
@路过秋天: 汗。这个我不会呀。我刚刚找到了一个在httpApplication中有一个RegisterModule方法,但是我在Application_Start方法中调用这个方法,将我自定义的module传过去,报了一个
在应用程序初始化之后无法注册模块。
这样的错误
在web.config 的 system.webServer/modules 节点添加 试试。
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" >
<add name="HttpUploadModule" type="UploadDemo.HttpUploadModule, UploadDemo" />
</modules>
</system.webServer>