问问各位大神,有没有办法让dll主动干涉ASP.Net 的运行,举个例子说:
网站刚开始运行的时候,只要将某个dll放入bin文件夹,或者引用了这个dll,dll写的代码就会主动干预网站的一些内容.
或者有这样的方法也行,能代码操作Web.config里的某一节,譬如<handlers>节,我代码添加了一个shtml的handler,今后所有.shtml的请求都会交给这个handler来处理.
跪求相关解决方案.
可以做到:
1、在DLL里定义PreApplicationStart模块处理过程
2、在预处理过程中,通过动态添加handler的方式增加自己的拦截处理程序,可以是httpmodule也可以是httphandler。
请问是否有现成的PreApplicationStart和动态添加handler或者module的实例代码吗?
片段也可以的.谢谢了.
@Kevin.Choi:
preapplicationstart(可能拼写有误)是.net 4.0 后内置的,当应用一触碰这个DLL就会被执行(是assembly层面),而且只执行一次,调用很简单:一个类的静态无参无返回公共方法。
至于动态设置拦截处理程序,我没弄过,但网上有类似的代码介绍。
@519740105: 好的,谢谢收帖结分.
我感觉可以把dll的名称写到配置文件里去,代码里通过反射调用dll文件中的方法。如果换新的dll文件,就把配置文件修改下。当然,前提是这些dll文件中的方法名称一致,有稳定的接口。
可以通过HttpHandler来处理