删除文件夹不再导致asp.net应用程序在asp.net 4中重新启动

时间:2013-02-08 16:39:57

标签: asp.net application-restart

在asp.net 2中,删除文件夹会导致应用程序重启。但今天我发现asp.net 4中不再存在这种行为?我找不到任何关于此的信息。任何人都能告诉我这是否属实?如果是的话,那真棒!我讨厌asp.net 2中的这个应用程序重启行为。你可以试试这个:

在asp.net webforms(.net 3.5)中调试以下代码,您将捕获ThreadAbortException。但是当你在asp.net webforms(.net 4)中调试它时,你不会捕获任何异常;一切都好。我认为我得到ThreadAbortException的原因是我删除了线程中的目录。然后重新启动应用程序,然后线程中止。 (环境:Win8,VS2012,IIS Express)

    protected void Page_Load(object sender, EventArgs e)
    {

        var thread = new Thread(() =>
        {
            var folderPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "App_Data\\Test");
            var filePath = Path.Combine(folderPath, "test.txt");

            if (Directory.Exists(folderPath))
            {
                Directory.Delete(folderPath, true);
            }
            Directory.CreateDirectory(folderPath);
            System.IO.File.WriteAllText(filePath, "Hello");

            try
            {
                var loop = 100;

                while (loop > 0)
                {
                    Thread.Sleep(100);
                    loop++;
                }
            }
            catch (Exception ex)
            {
                var msg = ex.Message;
            }
        });
        thread.Start();

        Response.Write("Running");
    }

1 个答案:

答案 0 :(得分:2)

我可以看到3.0和4.0之间没有区别,以下操作将导致应用重启:

  

应用程序重新启动

     

修改Web应用程序的源代码将导致ASP.NET   将源文件重新编译为程序集。当你修改   应用程序中的顶级项目,以及中的所有其他程序集   引用顶级程序集的应用程序将重新编译为   好。

     

此外,修改,​​添加或删除某些类型的文件   在应用程序的已知文件夹中将导致应用程序   重新开始。以下操作将导致应用程序重新启动:•
  从应用程序的Bin添加,修改或删除程序集   文件夹中。

     

•添加,修改或删除本地化资源   App_GlobalResources或App_LocalResources文件夹。

     

•添加,修改或删除应用程序的Global.asax   文件。

     

•在App_Code中添加,修改或删除源代码文件   。目录

     

•添加,修改或删除配置文件配置。

     

•添加,修改或删除Web服务引用   App_WebReferences目录。

     

•添加,修改或删除应用程序的Web.config文件。

MSDN 3.0 ASP.NET Application Life Cycle Overview

MSDN 4.0 ASP.NET Application Life Cycle Overview

所以我想这取决于您在应用程序目录中删除的which文件夹。