博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
system.web下的HttpModules节点和system.webServer下的modules节点的配置区别
阅读量:6507 次
发布时间:2019-06-24

本文共 1478 字,大约阅读时间需要 4 分钟。

[转]

自定义web模块,需继承System.Web.IHttpModule接口

一:拦截对该服务器所有的http请求。

第一步:将自定义module类使用强名编译,并放在GAC中。

Windows7不能直接把dll文件拖到GAC中,只能只用GACUtil工具。

方法是:打开Visual Studio命令行,提示进入目录:E:\Program Files\Microsoft Visual Studio 10.0\VC,

gacutil /i [assemblypath],将该Assembly安装在GAC中
gacutil /l [assemblyName], 出现Assembly的详细信息

gacutil /u [assemblyName], 卸载该Assembly

第二步:把模块加在machine.config, web.config或者IIS的applicationhost.config里。

IIS的applicationhost.config位于(%windir%\system32\inetsrv\config\applicationhost.config)

    
         ......................

其中,type的格式为:“NameSpaceName.ClassName,AssemblyName, StrongName”

二:只拦截对某web程序的Request,有两种方法:

1.将自定义模块单独编译为一个dll文件,并通过dll引用添加到web程序。

并修改该程序内部的web.config文件:

2.把自定义模块的类文件放在web网站的app_code目录下,并修改该程序内部的web.config文件:

其中,type格式为“NameSpaceName.ClassName“。

奇怪的是,在第二种方式下,在VS debug模式下访问.wmv文件时不能触发module,访问.aspx文件时则可以。而第一种方式下,访问程序里的.wmv文件和.aspx文件都可以触发该自定义module。笔者不知为何,索性改回第一种方式。留待以后再探索。(探索结果:原来不是第二种方式的问题,而是在测试时网站端口改变,而旧的debug线程未被杀死,所有用旧的url直接访问了过期的旧线程。这是不是VS的一个bug,当退出debug时,启动的临时线程并未被杀死,而重新启动debug时,旧的临时server线程也未被新的替代,好大一个bug哇。看图:

,只有两个,壮观的时候有6,7个呢。

)

 
 
 

转载地址:http://itwfo.baihongyu.com/

你可能感兴趣的文章
多线程问题(JVM重排序)
查看>>
LeetCode 459 Repeated Substring Pattern
查看>>
POJ 3268 Silver Cow Party
查看>>
Android Camera开发:使用TextureView和SurfaceTexture预览Camera 基础拍照demo
查看>>
EMLS项目推进思考
查看>>
Eclipse快捷键 10个最有用的快捷键
查看>>
2018-2019-1 20165302 实验五 通讯协议设计
查看>>
快速寻找满足条件的两个数
查看>>
centos6.5安装LNMP
查看>>
Golang 知识点总结
查看>>
JAVA 8 特性
查看>>
算法设计 - LCS 最长公共子序列&&最长公共子串 &&LIS 最长递增子序列
查看>>
WebService之Axis2快速入门(7): Spring与axis整合发布为WebServic
查看>>
Uliweb查看模板调用关系
查看>>
C#与PHP通信压缩
查看>>
根据经纬度获取时区信息
查看>>
关于 Linux
查看>>
图文解析五大外链误区
查看>>
ios开发之导航控制器的原理
查看>>
《Netkiller Blockchain 手札》Hyperledger Fabric Java SDK Demo
查看>>