我想要获得在Azure云上运行的matlab编译的exe,并且为此目的需要将v78.zip拖放到本地存储云并将其解压缩,然后才能尝试在云上运行exe。该程序在本地执行时可以正常工作,但在部署时会在代码中标记为下面的行处出现错误。错误是:Azure:进程无法访问文件“”,因为它正在被另一个进程使用
进程无法访问文件'C:\ Resources \ directory \ cc0a20f5c1314f299ade4973ff1f4cad.WebRole.LocalStorage1 \ v78.zip',因为它正在被另一个进程使用。
异常详细信息:System.IO.IOException:进程无法访问文件'C:\ Resources \ directory \ cc0a20f5c1314f299ade4973ff1f4cad.WebRole.LocalStorage1 \ v78.zip',因为它正在被另一个进程使用。
的代码如下:
string localPath = RoleEnvironment.GetLocalResource("LocalStorage1").RootPath;
Response.Write(localPath + " \n");
Directory.SetCurrentDirectory(localPath);
CloudBlob mblob = GetProgramContainer().GetBlobReference("v78.zip");
CloudBlockBlob mbblob = mblob.ToBlockBlob;
CloudBlob zipblob = GetProgramContainer().GetBlobReference("7z.exe");
string zipPath = Path.Combine(localPath, "7z.exe");
string matlabPath = Path.Combine(localPath, "v78.zip");
IEnumerable<ListBlockItem> blocklist = mbblob.DownloadBlockList();
BlobStream stream = mbblob.OpenRead();
>> FileStream fs = File.Create(matlabPath); (Exception occurs here)
这将是很大的帮助,如果有人能告诉我,我要去哪里错了。
嗨丹,谢谢你的建议。我面临两个问题实现它 - 首先,使用期望一种类型可以隐式转换为System.IDisposable,其次,在使用stmt中发生的声明和赋值已放在(在上面的代码中),这些是在using之外引用的。这不会正常工作?我在这里错过了什么吗? – Shantanu 2010-05-30 06:06:07