我的ASP.Net应用程序在请求过程中经常会不可预知地重启,破坏我的状态、会话数据等。我确定问题是由一个控件造成的,该控件在创建离
bin
目录近的Temp
文件夹时写入和删除一些文件,因此Web目录看起来像这样:bin
Temp
....
Default.aspx
web.config
ASP.Net显然对Temp
文件夹内部的更改的反应方式与其对bin
或web.config内部更改的反应方式相同 - 它会重新启动应用程序。
我可以通过将Temp
移动到站点目录之外来部分解决问题。这样,每次写入/删除临时文件时,应用程序不会重新启动,因此这一部分效果很好。问题在于,Temp
目录中的某些文件应该是可以通过Web访问的,例如生成的图像等。
因此,我的问题实际上有三个:
- 即使更改不是在
bin
目录中进行的,ASP.Net应用程序是否应该重新启动,还是我的配置有问题? - 在哪里以及如何创建一个临时文件夹,使其可以通过Web访问但不会导致应用程序重新启动?
- 如何从代码或web.config(在IIS和ASP.Net开发服务器中)关闭对目录更改的重新启动?