首页 新闻 会员 周边 捐助

ASP.Net开始运行时

0
悬赏园豆:50 [已解决问题] 解决于 2014-09-14 20:22

问问各位大神,有没有办法让dll主动干涉ASP.Net 的运行,举个例子说:

网站刚开始运行的时候,只要将某个dll放入bin文件夹,或者引用了这个dll,dll写的代码就会主动干预网站的一些内容.

 

或者有这样的方法也行,能代码操作Web.config里的某一节,譬如<handlers>节,我代码添加了一个shtml的handler,今后所有.shtml的请求都会交给这个handler来处理.

 

跪求相关解决方案.

Kevin.Choi的主页 Kevin.Choi | 初学一级 | 园豆:3
提问于:2014-09-14 12:59
< >
分享
最佳答案
0

可以做到:

1、在DLL里定义PreApplicationStart模块处理过程

2、在预处理过程中,通过动态添加handler的方式增加自己的拦截处理程序,可以是httpmodule也可以是httphandler。

收获园豆:50
519740105 | 大侠五级 |园豆:5810 | 2014-09-14 16:29

请问是否有现成的PreApplicationStart和动态添加handler或者module的实例代码吗?

片段也可以的.谢谢了.

Kevin.Choi | 园豆:3 (初学一级) | 2014-09-14 19:49

@Kevin.Choi: 

preapplicationstart(可能拼写有误)是.net 4.0 后内置的,当应用一触碰这个DLL就会被执行(是assembly层面),而且只执行一次,调用很简单:一个类的静态无参无返回公共方法。

至于动态设置拦截处理程序,我没弄过,但网上有类似的代码介绍。

519740105 | 园豆:5810 (大侠五级) | 2014-09-14 20:17

@519740105: 好的,谢谢收帖结分.

Kevin.Choi | 园豆:3 (初学一级) | 2014-09-14 20:22
其他回答(2)
0

我感觉可以把dll的名称写到配置文件里去,代码里通过反射调用dll文件中的方法。如果换新的dll文件,就把配置文件修改下。当然,前提是这些dll文件中的方法名称一致,有稳定的接口。

会长 | 园豆:12463 (专家六级) | 2014-09-14 13:26
0

可以通过HttpHandler来处理

jello chen | 园豆:7336 (大侠五级) | 2014-09-14 13:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册