我只想删除Directory
中的project folder
。
该文件夹包含所有网络sharing authority and permission
。
当我deleting the folder
时出现问题。
文件夹已从serverpath(Virtual Directory)
删除。
但我的问题是,当我完成任务并点击任何控件时,它会将我重定向到Login page
return url
,因为根目录上有secure authentication
可用
答案 0 :(得分:16)
应用程序域回收时 子目录被删除,这就是您的会话将丢失并被重定向到登录页面的原因。
有关详细信息,请查看MSDN博客中的这篇文章,并阅读为什么应用程序域可以回收? ASP.NET Case Study: Lost session variables and appdomain recycles
并检查此Deleting ASP.NET 2.0 Application Sub-Directories Shuts Down the AppDomain
答案 1 :(得分:6)
如另一个答案所述,这是因为每当您删除Web应用程序目录结构中的文件夹(即Web应用程序根目录下方)时,Web应用程序都会重新启动。
我发现此问题的唯一解决方案是将数据目录(您创建/删除/修改)移到Web应用程序的根目录/虚拟目录之外。
然后我们在文件系统中创建一个链接(联结),以便该目录显示在虚拟目录中。这可以防止ASP.NET监视数据目录以进行删除操作。
示例:
C:\projectX\website
C:\projectX\data
C:\projectX\website\data
使用程序Linkd.exe
(在Windows资源工具包中提供)使用以下命令创建链接:
linkd c:\projectX\website\data c:\projectX\data
现在C:\projectX\website\data
是指向真实数据目录的链接/联结。在您的Web应用程序中,您可以继续工作,就像数据目录是Web应用程序根目录下的物理目录一样。
E.g。在您的网站中,您可以使用以下代码访问数据文件夹:
Server.MapPath("~/data")
您还可以使用Windows文件浏览器并浏览到C:\ projectX \ website \ data。它看起来就像一个真实的目录。
如您所见,您可以继续使用链接数据文件夹,就好像它是Web应用程序目录中的普通文件夹一样。唯一的区别是ASP.NET不会跟踪删除操作的目录,因此不会重新启动应用程序。这意味着,您现在可以根据需要在~/data
目录中创建/删除/修改文件夹和文件,而无需重新启动Web应用程序。
答案 2 :(得分:0)
您可以将项目根目录中的文件夹替换为App_Data文件夹吗?