我需要将CSV文件上传到Azure服务器上的ASP.NET应用程序。虽然它在我的本地计算机上运行正常,但在将其上载到服务器时会引发以下错误:
“进程无法访问该文件 '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)
{
}
答案 0 :(得分:2)
生成唯一文件名的代码是错误的。使用Path.GetTempFileName。
PS 永远不会吃一个例外。请删除catch (Exception ex) {}
;
<强>修订强>
而不是FileImport.Save(...)
只需将请求保存在MemoryStream中,然后继续处理。