2011-09-01 74 views
1

我有一个web应用程序,管理员可以创建消息,PDF文档和其他的东西在他的CMS面板。ASP.NET会话及删除文件夹

问题是,当管理员删除一个新的或别的应用删除所有涉及到新的,我指的是图像,PDF等文件的文件。主要问题是这些文件存储在“news”文件夹下的文件夹中,当应用程序删除它们时会话丢失。

我该怎么做才能有一个文件系统,而不会丢失会话? 我想该文件系统的应用程序文件夹中...

我们不可能来存储应用之外的文件夹,我们不希望使用的,因为performanne的StateServer的....

其他解决方案?

谢谢

回答

0

让这些文件在应用程序文件夹中是一个可怜的设计。由于文件系统更改导致IIS重新启动,因此会话可能会丢失。没有Web应用程序能够写入自己的文件夹会更安全,这样做会带来安全风险。

+0

所以,你的意思是每个网站的用户的文件存储“inetput”或“虚拟主机”文件夹之外?类似于服务器中的“C:/ User_Data”?但是,我怎样才能访问所有的信息?我不能使用“〜/”路线... - 迈克约翰逊0秒前编辑 –

+0

通过网络访问它们在iis中创建一个指向该文件夹的虚拟目录。 – kmcc049

+0

因此,我将这些文件放在一个文件夹中,例如“C:\ Files \”。我必须创建一个指向该文件夹的虚拟目录,然后从Web应用程序访问该虚拟目录,对吧?你有一个例子吗? –

1

你的会话丢失becasue IIS重新编译。我认为最简单的解决方案是将您的文件存储在wwwroot之外。

讨论了SO:ASP.NET restarts when a folder is created, renamed or deleted

[更新] 例子: 让我们留在你的应用程序是在C:\的Inetpub \ wwwoot \ virtualdir1

你让一个工作目录: C:\的Inetpub \百宝箱 - 生活查询

给适当的权限(读/写/等)到你的应用程序池的Asp.net用户,它应该像一个魅力的所有工作。 上设定的权利更多信息:What are all the user accounts for IIS/ASP.NET and how do they differ?

存储的路径,在web.config中workdirectory(你没有不想硬编码)

+0

您能否给我一个例子?另外,当丢失Session时,你也会失去Forms Authentication,对吗? –

+0

是的,你失去了认证。请参阅更新 – Pleun

+0

中的示例感谢,但该解决方案无法工作,因为在Plesk控制面板上,您无法设置Plesk外部的任何内容,否则Plesk将重置您在运行维护时所做的任何权限更改...所以在域文件夹之外的任何东西... –

0

独立的文档文件夹和Web站点文件夹。并给予权利您的文件夹。