在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");
}
答案 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
文件夹。