我有一种情况,用户的我ASP.NET 网络应用程序的提交推荐的组成文的信息和图像。在提交过程具有以下步骤:

  • 第一本用户输入的内容和选择的路径图像
  • 当他击时的预览,信息是再一次显示这样他就可以确认
  • 一旦证实的信息被保存在数据库

这个问题是,我不想商店传的图像数据库之前,用户实际上证实。而不是我的商店它们作为临时文件,并把它们放在DB后,才最终确认。

因为我也想要我的应用程序运行在介质上的信任,我已经写入权限只应用目录和无处之外。我甚至想到的限制写入权限的ASPNET网络服务用户的~/App_Data文件夹。该问题与我的情况是,一旦一个临时文件是在创建这个文件夹,用游泳池的再循环和我不想那样对每个证明提交。

怎么你建议我保持这些临时文件,而不是?游泳池是不是重新启动,如果我更新一个文件只有在创建或重新命名。但我不认为我可以整个图像储存在一个单一的文件为所有用户。你怎么想?

更新:我应该注意的是,我使用的第三方控制的上传。它给我编程访问的二流的文件内容之后上载,但我无法保持这之后的第二回发(第一步,并回实际上没有上载)。

有帮助吗?

解决方案

我会推荐 IsolatedStorage.它是一种虚拟的文件夹。

这里是一个摘录 一个例子在演示:

IsolatedStorageFileStream stream = 
  new IsolatedStorageFileStream(ISOLATED_FILE_NAME, 
  FileMode.Create, isoStore);

StreamWriter writer = new StreamWriter( stream );
writer.WriteLine( "This is my first line in the isolated storage file." );
writer.WriteLine( "This is second line." );
writer.Close();

更新:清理你的文件只是这样做:

string fileName = "isolatestorage.txt";

IsolatedStorageFile storage = IsolatedStorageFile.GetStore(
    IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null);

string[] files = storage.GetFileNames(fileName);
foreach(string file in files) {
    if(file == fileName) {
        storage.DeleteFile(file);
        break;
    }
}

其他提示

默认web_mediumtrust.配置文件中,Microsoft船是臭名昭着不切实际的。

这里是一个片段从默认web_mediumtrust.配置文件。默认情况下,不能使用的系统。IO发现或写信给临时文件夹。

                        <IPermission
                                class="FileIOPermission"
                                version="1"
                                Read="$AppDir$"
                                Write="$AppDir$"
                                Append="$AppDir$"
                                PathDiscovery="$AppDir$"
                        />

虽然我还没有experirement与孤立存储所提到的@Seb,它似乎允许通过默认的配置文件。

你仍然可以利用正常的 路径。GetTempFilename()方法得到一个临时文件ASP.NET 情况。

它应该给你一个临时文件路径,是可写的NETWORK_SERVICE但也生活在一个实际Windows'临时文件夹不是你的应用程序的文件夹。

如果你主机构造成他的服务器是否正确,应该作品的罚款。

这是一个答复Leppie谁评论我的问题(避免焦炭限制)

自: http://blogs.msdn.com/johan/archive/2007/05/16/common-reasons-why-your-application-pool-may-unexpectedly-recycle.aspx

...有时你的应用程序池莫名其妙地回收为没有明显的原因。这通常是结构问题或者由于这样的事实,正在执行文件系统操作中应用的目录。

你确定这是不是应该回收?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top