ASP.NET:编写Web可访问的临时文件而无需重新启动应用程序

时间:2012-06-22 07:22:40

标签: asp.net

我的ASP.Net应用程序曾经在请求期间不可预测地重新启动,破坏了我的状态,会话数据等。我确定问题是由一个控件写入和删除它创建的Temp文件夹中的某些文件引起的bin文件夹,因此web目录如下所示:

bin
Temp
....
Default.aspx    
web.config

ASP.Net显然会对Temp文件夹中的更改做出反应,就像它对bin或web.config中的更改做出反应一样 - 它会重新启动应用程序。

我可以通过将Temp移到站点目录之外来部分解决问题。这样,每次写入/删除临时内容时,应用程序都不会重新启动,因此这部分工作正常。问题是Temp目录中的某些文件应该是Web可访问的 - 就像动态生成的图像一样。


所以我的问题实际上是三重的:

  1. 即使更改不是在bin目录中,而是在同一级别的另一个目录中,ASP.Net应用程序是否应该重新启动?或者我的配置有问题吗?
  2. 我在哪里以及如何创建一个临时文件夹,以便它可以通过网络访问,但不会导致应用程序重启?
  3. 如何从代码或web.config(IIS和ASP.Net开发服务器中)关闭目录更改重启?

1 个答案:

答案 0 :(得分:1)

根据我的理解,这里是您问题的答案:

  1. 当在其中一个内容目录中更改了太多文件时,ASP.NET将重新启动应用程序。有关更多信息,请参阅:http://programming360.blogspot.in/2009/04/what-causes-application-restart.html
  2. 只要IIS-User可以访问应该正常工作的文件夹,就可以在同一台计算机或不同计算机(文件共享)的任何位置创建临时文件夹。您需要考虑的唯一事情是文件夹在另一台计算机上时的延迟。
  3. 我不相信你可以控制应用程序重启,这完全由IIS控制。 可能想要阅读这个SO问题:ASP.NET restarts when a folder is created, renamed or deleted