【分享】二次开发编写组件不用重启IIS进行调试,不用等待
2人赞赏了该文章
1.1万次浏览
编辑于2014年05月21日 17:56:34
编码以来,修改组件进行编译,替换到站点Bin目录下,或者直接编译到Bin下面,就必须重启IIS,打开系统等待很长时间,修改代码1分钟,重启站点,打开站点则花了5分钟,大家是不是为这个问题苦恼,没有找到办法呢???
下面我来介绍一个很简单非常实用,非常有效的办法,最终能解决这个苦恼的问题,编译组件后就像改了一个网页代码,不用等待,重新打开站点即可,即时断点到代码,附件进程即可调试。
这里必须要借助一个非常方便快速使用的查找电脑文件的工具----Everything
这个工具可以网上下载,这里论坛不方便上传附件,方便可以留下邮箱,我发送一个给大家
下面以修改Kingdee.BOS.Business.PlugIn.dll这个组件代码为例
步骤:1、修改该组件的编译路径,即编译的output输出本地路径,大家都习惯指向了站点的bin目录里面,这里一定不能指向Bin里面,可以统一指向其他路径。
2、附图:
用这个小工具,搜索你所修改的组件。这里一定要找到对的路径,这里是微软根据每个站点每个组件都有个非常复杂的路径,没个组件一定是放在一个文件夹里的,如上图,我搜索的这个组件就是在这个路径下面。。
这里大家就问,我怎么知道这个路径呢,继续看下面:
接上继续附图
就是你附加进程断点时候,VS下面有loading的很快闪过的信息,其实大家都不会太注意,这里你眼睛瞄一下,我标注出来的第一个位置那个文件夹,后面那么长的不用记,
这里说明下,每个站点下所有的组件都一定是在一个根目录里面,也就是一个站点肯定是一个根目录,只不过,这个目录微软用了GUID还是什么随机给了串命名了这个文件夹。。
3、按照第2步,打开这个组件所在目录,直接替换就行了,替换时候可能会提示该文件被其他进程使用,就是把当前运行的站点给停止掉,就是w3wp这个进程结束掉,替换就行了
4、直接打开站点,这时候打开站点不用等待时间,就像没有重启IIS那样,实际Bin下面的组件还是旧的,我们可以不用,只要你统一编译放到那个路径是最新组件就OK了。
上面说的可能感觉有点复杂,操作1,2遍就知道了,很快哟。。。能节省时间大大提高调试的工作效率。。。
提示,如果增加一个新的组件编译时,看这个能不能搜索到,如果搜索不到还是第一次要拷贝到Bin目录下面的。第二次就当修改了,非常简单。
这里有个误区:这里第3步说到停止站点进行替换组件,这里解释下,假如编译的dll放到Bin下面,也即修改了bin里面东东,如果重启IIS后再重启站点,会非常慢,我们就是要解决这个问题。如果不修改Bin而重启站点,是非常快的,不用等待第一次组件加载的时间。做过N次实现。
推荐阅读