Asp.net NETMVC3。System.IO.IOException:进程无法访问文件“”,因为另一个进程正在使用该文件
请帮帮我。 我有一个asp.NETMVC3应用程序。我需要从服务器上删除一个文件,但我不能。当我在本地机器上测试我的应用程序时-删除成功,但当我在web服务器上运行它时,我出现错误System.IO.IOException:该进程无法访问该文件,因为它正被另一个进程使用Asp.net NETMVC3。System.IO.IOException:进程无法访问文件“”,因为另一个进程正在使用该文件,asp.net,asp.net-mvc-3,Asp.net,Asp.net Mvc 3,请帮帮我。 我有一个asp.NETMVC3应用程序。我需要从服务器上删除一个文件,但我不能。当我在本地机器上测试我的应用程序时-删除成功,但当我在web服务器上运行它时,我出现错误System.IO.IOException:该进程无法访问该文件,因为它正被另一个进程使用 [HttpPost, ActionName("Delete")] public ActionResult DeleteConfirmed(int id) { ... if (ad.AdPhot
[HttpPost, ActionName("Delete")]
public ActionResult DeleteConfirmed(int id)
{
...
if (ad.AdPhoto1 != null)
{
System.IO.File.Delete(AppDomain.CurrentDomain.BaseDirectory + "Content/photos/" + ad.AdPhoto1);
}
}
对不起,问题不太完整,我昨天没有那么多时间。。。 例如,文件是图像。jpg。我有一个模型:
public class Ad
{
public int AdId { get; set; }
...
[Display(Name = "Photo")]
public string AdPhoto1 { get; set; }
[Display(Name = "Photo 2")]
public string AdPhoto2 { get; set; }
[Display(Name = "Photo 3")]
public string AdPhoto3 { get; set; }
[Display(Name = "Photo 4")]
public string AdPhoto4 { get; set; }
...
}
当我创建一个新的广告时,我把照片上传到服务器上,并把它的名字写在我的模型上。我是如何做到这一点的:
[HttpPost]
public ActionResult Create(Ad ad, int? Categories, int? SubCategories, IEnumerable<HttpPostedFileBase> fotoUpload)
{
...
if (ModelState.IsValid)
{
int count = 1;
foreach (var file in fotoUpload)
{
Random random = new Random();
int randomItem = random.Next(1, 100);
if (file != null)
{
string path = AppDomain.CurrentDomain.BaseDirectory + "Content/photos/";
string filename = randomItem + count + "Photo" + Path.GetFileName(file.FileName);
if (Request.ContentLength > 1228800)
{
ViewBag.FileSizeError = "Сумарный размер загружаемых вами файлов превышает ограничение в 1,2 МБ";
ModelState.Remove("Categories");
ValuteInitializer();
return View();
}
file.SaveAs(Path.Combine(path, filename));
switch (count)
{
case 1:
ad.AdPhoto1 = filename;
break;
case 2:
ad.AdPhoto2 = filename;
break;
case 3:
ad.AdPhoto3 = filename;
break;
case 4:
ad.AdPhoto4 = filename;
break;
}
}
count++;
}
if (User.Identity.IsAuthenticated)
{
ad.AdAuthor = User.Identity.Name;
ad.AdVisibility = true;
db.SaveChanges();
}
ad.AdData = DateTime.Now;
ad.AdPriority = 3;
ad.CategoryId = Categories;
ad.SubCategoryId = SubCategories;
db.Ads.Add(ad);
db.SaveChanges();
return RedirectToAction("CreateSuccess");
}
return View(ad);
}
我看了很多关于同样问题的帖子,但是我没有找到解决问题的方法。我想问题可能与溪流有关。所以,我希望有人能帮助我 首先检查它是否未被其他应用程序打开。因为在大多数情况下,当另一个应用程序使用它时,您会遇到这样的错误:您能显示创建此文件的代码吗?看起来你的把手漏水了。这就是问题所在,而不是删除文件。它可能仍然由WebDev.WebServer.exe文件保存