Я пытаюсь получить исполняемый на Matlab exe, работающий на облаке Azure, и для этого нужно получить 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 u, помещенного (в коде выше), на которые ссылаются вне использования. Это не работает правильно? Я что-то упустил? – Shantanu