我在开发中遇到了这个问题所以把解决的方案给大家分享一下希望对一些遇到同样问题的朋友有所帮助
ASPNET 是采用动态编译机制的了也就是只要添加ASPX文件和相应的CS后台代码文件不再需要进行编译就可以运行了
ASPNET 会去动态的编译进行而这种带有监控色彩的机制虽然带来很多好处
很明显的要是app_code里的代码有变化或者Bin目录里的文件有变化WebConfig有变化都会导致Application重启这些都可以理解的
不可理解的是当有目录被删除时时也会导致Application重启这就会让Session失去了我曾试图放到App_data里以为App_Data是ASPNET唯一的净地结果让我失望了在App_Data里有删除目录的操作同样会Application重启
网上有好多人遇到这样的问题有人建议是采用进程外的Session但这种设置毕竟是有点麻烦的我可懒得去动具体的方法可以参考
但我找到了另一种更好的变通的方式
就是在应用项目的目录外面建一个目录比如在C\下建个MyWebTemp目录
然后在IIS里的应用项目里建一个虚拟目录指向这个C\MyWebTemp上
然后记住要把足够的权限给赋上比如IUSR_XXXXNetWork等赋上读写权限
现在好了你可以在你的应用项目里对/MyWebTemp的目录进行文件操作了添加子目录删除子目录都无所谓了
其实原理很简单的就是ASPNET会对应用项目的目录结构进行监控一旦有目录删除 就重启那么只要MyWebTemp不在他的目录结构监控范围里就可以了
这种文法比较简单可能不是最佳的方案不过能应付就可以了)希望能有更简单易行的方案出来