2015-09-11 2 views
0

Мне нужно загрузить CSV-файл в приложение ASP.NET на сервере Azure. Хотя он прекрасно работает на моей локальной машине, при загрузке на сервер следующее сообщение об ошибке брошено:«Процесс не может получить доступ к файлу, потому что он используется другим процессом»

«Процесс не может получить доступ к файлу „C: \ Inetpub \ Wwwroot \ ImportFiles \ 9_11.csv“потому, что он в настоящее время используется другим процессом»

Мой код:

 string fileName = DateTime.Now.ToString().Replace(':', '_').Replace('/', '_').Replace(' ', '_') + Convert.ToString((new Random()).Next(0, 999) * (new Random()).Next(0, 999)); 
     string path = Server.MapPath("ImportFiles") + "\\" + fileName + "" + FileImport.FileName.Substring(FileImport.FileName.IndexOf('.')); 
     FileImport.SaveAs(path); 
     string pathforSeconStream = path; 
     try 
     { 
      Response.Write("<script> alert('In Try Block');</script>"); 
      bool flag = true; 
      int visiblemessageCount = 0; 
      int rollNo = 1; 
      StreamReader ColLine = new StreamReader(path); 
      string ColInputline = ColLine.ReadLine(); 
      String[] ColsInput = ColInputline.Split(','); 
      ColLine.Close(); 
      ColLine.Dispose(); 
      string preFix = "", RollNumber = ""; 
      StreamReader sr = new StreamReader(pathforSeconStream); 
} 
catch(Exception ex) 
{ 
} 

ответ

2

код для создания уникального имени файла является неправильным. Используйте Path.GetTempFileName.

PS Никогда не ешьте исключения. Удалите catch (Exception ex) {};

Редакция

Вместо FileImport.Save(...) просто сохранить запрос в MemoryStream, а затем работать над ней.

+0

спасибо, Но мне нужно сохранить этот файл в двух потоковых объектах для дальнейшей обработки. Сначала я сохраняю поток в объекте «ColLine», а второй я сохраняю поток в объекте «sr» .. но он через сообщение об ошибке, хотя он работает отлично на моей машине dev. – Shahab

+0

@Shahab код, который вы показали, ничего не делает в блоке 'try'. Если вы еще не указали код, вы всегда можете сбросить текущую позицию «MemoryStream». –

+0

Существует много кода, который я не мог пропустить, из-за которого мой вопрос использовал меньше, никто не хочет читать много кода, так как есть один запрос, который выполняется после сопоставления двух значений списка массивов. – Shahab

Смежные вопросы

 Смежные вопросы