关于ASP.NET 2.0的目录结构变化
我在开发中,遇到了这个问题,所以把解决的方案给大家分享一下。希望对一些遇到同样问题的朋友有所帮助。
asp.net 2.0是采用动态编译机制的了,也就是只要添加aspx文件和相应的cs后台代码文件,不再需要进行编译,就可以运行了。
asp.net 2.0会去动态的编译进行。而这种带有“监控”色彩的机制虽然带来很多好处。
很明显的,要是app_code里的代码有变化、或者bin目录里的文件有变化,web.config有变化,都会导致application重启。这些都可以理解的。
不可理解的是“当有目录被删除时”时也会导致application重启,这就会让session失去了。我曾试图放到app_data里,以为app_data是asp.net唯一的净地。结果让我失望了。在app_data里,有“删除目录”的操作,同样会application重启。
网上有好多人遇到这样的问题。有人建议是采用“进程外”的session.但这种设置毕竟是有点麻烦的。我可懒得去动。具体的方法可以参考:http://www.cnitblog.com/seeyeah/archive/2007/01/20/22089.html(文章来源 www.iocblog.net)
但我找到了另一种更好的变通的方式:
就是在应用项目的目录外面建一个“目录”,比如在c:下建个mywebtemp目录。
然后在iis里的应用项目里建一个“虚拟目录”指向这个“c:mywebtemp”上。
然后记住要把足够的权限给赋上,比如:iusr_xxxx,network等赋上读写权限。
现在好了,你可以在你的应用项目里,对"./mywebtemp"的目录进行文件操作了。添加子目录、删除子目录都无所谓了。
其实原理很简单的,就是asp.net会对应用项目的目录结构进行监控,一旦有“目录删除 ”就重启。那么,只要mywebtemp不在他的目录结构监控范围里就可以了。
这种文法比较简单,可能不是最佳的方案,不过能应付就可以了:)希望能有更简单、易行的方案出来。
文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。