ASP.NET 4.5 - 在虚拟目录中删除子目录时重新启动应用程序池

时间:2014-02-10 21:29:14

标签: c# asp.net .net iis

前言,在我决定提出这个问题之前,我已经搜索过StackOverflow。

我遇到的问题是删除ASP.NET Web应用程序中的子目录并导致应用程序池重新启动。

我们上传文件的文件夹,以及删除/创建子目录,都在应用程序的根目录下,并在IIS中设置为虚拟目录。

可以上传包含HTML和图片的zip。我们展示了html和图像的预览。

用户可以重新上传另一个zip。发生这种情况时,我们删除以前的临时文件夹,然后创建另一个临时文件夹来保存zip的内容并渲染另一个预览。

在删除上一个文件夹的过程中,我们看到应用程序重启。日志输出的片段是:

2014-02-10 16:06:45,240 [16] global_asax - Application_End(): CONFIG change
HostingEnvironment initiated shutdown
HostingEnvironment caused shutdown:    at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)

我们已经有了这个设置,因为我们的应用程序曾经在ASP.NET 2.0下运行,这是“推荐”设置,以避免应用程序池重新启动和创建/删除目录。

我们最近将我们的Web应用程序升级到ASP.NET 4.5,我们在开发环境中看到了这种行为。

基于这篇文章http://connect.microsoft.com/VisualStudio/feedback/details/646824/asp-net-application-restart-ignore-folder-setting,该文章说,当文件夹位于网络根目录以及此帖子http://blogs.msdn.com/b/tess/archive/2006/08/02/asp-net-case-study-lost-session-variables-and-appdomain-recycles.aspx下时,ASP.NET 4放宽了对目录更改的监控。声明更改虚拟目录的物理结构可能导致应用程序池重新启动。我已将文件夹移回Web根目录下,但我仍然看到了这种行为。

有趣的是,如果我们注释掉创建预览的代码片段(一个iFrame会呈现html,它将引用随zip上传的任何图像到其临时位置,即:domain.com/temp/2// images / header.gif。没有重启应用程序就会发生删除。

任何帮助或关于下一步的建议都将不胜感激。

0 个答案:

没有答案