我有一个应用程序,我想上传一个最大为 2GB 的大文件,在处理完这个文件后,我想将它作为 blob 存储在 blobstorage 上。我正在使用 SWFUploader 上传文件(我想显示进度条,这是必须的)。
问题是,我无法上传超过 100 MB 的文件。上传最大 100 MB(或有时 90-95 MB)的文件后,它会重新启动整个上传过程,有时它会失败。我正在使用一个 Webrole 项目来完成整个任务。
所以我的问题是:我可以在windows azure webrole项目(基本上是它的Asp.net网站,所以我想在网络服务器上上传一个文件)上传这么大的文件并在那里处理它然后上传到blobstorage吗?
据我所知,我做了以下事情:
1:我在web.config中设置了以下参数
<security>
<requestFiltering>
<!--maxAllowedContentLength in bytes-->
<requestLimits maxAllowedContentLength="2147483648"></requestLimits>
</requestFiltering>
</security>
<httpRuntime executionTimeout="999999" maxRequestLength="2097152"/>
2:我已将 ASP.Net 的默认 TMP/TEMP 文件夹(默认为 100 MB)更改为我使用以下代码片段在本地存储资源中创建的新文件夹
我创建了这个“CustomTempLocalStore”作为
<LocalStorage name="CustomTempLocalStore" cleanOnRoleRecycle="false" sizeInMB="1024" />
然后通过在 webrole 的 onstart() 方法中设置以下代码,将此本地存储资源设置为用作 TMP/TEMP。
string customTempLocalResourcePath = RoleEnvironment.GetLocalResource("CustomTempLocalStore").RootPath;
Environment.SetEnvironmentVariable("TMP", customTempLocalResourcePath);
Environment.SetEnvironmentVariable("TEMP", customTempLocalResourcePath);
我在以下链接上找到了这个:http: //msdn.microsoft.com/en-us/library/dd573354.aspx
仍然无法正常工作,SWFUploader 给出以下错误:
服务器(IO)错误
有任何想法吗?