Мне нужно загрузить 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)
{
}
спасибо, Но мне нужно сохранить этот файл в двух потоковых объектах для дальнейшей обработки. Сначала я сохраняю поток в объекте «ColLine», а второй я сохраняю поток в объекте «sr» .. но он через сообщение об ошибке, хотя он работает отлично на моей машине dev. – Shahab
@Shahab код, который вы показали, ничего не делает в блоке 'try'. Если вы еще не указали код, вы всегда можете сбросить текущую позицию «MemoryStream». –
Существует много кода, который я не мог пропустить, из-за которого мой вопрос использовал меньше, никто не хочет читать много кода, так как есть один запрос, который выполняется после сопоставления двух значений списка массивов. – Shahab