C# ASP.NET MVC-尝试读取和写入文本文件时出错

C# ASP.NET MVC-尝试读取和写入文本文件时出错,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,目前,我正在尝试创建两种控制器方法,从文件读取和写入同一文件: public ActionResult UploadText(string name) { var path = Path.Combine(Server.MapPath("~/text/"), name); var fileContents = System.IO.File.ReadAllText(path); ViewData["text"] = fileContents; ViewData["t

目前,我正在尝试创建两种控制器方法,从文件读取和写入同一文件:

public ActionResult UploadText(string name)
{
    var path = Path.Combine(Server.MapPath("~/text/"), name);

    var fileContents = System.IO.File.ReadAllText(path);
    ViewData["text"] = fileContents;
    ViewData["textName"] = name;

    return View();
}

[HttpPost]
public ActionResult TextPost(string textName)
{
    string text = Request["text-content"];
    var path = Path.Combine(Server.MapPath("~/text/"), textName);

    System.IO.File.WriteAllText(path, text);

    return RedirectToAction("Index");
}
读取文件内容并向其写入可以工作,但无法再次读取,
文件无法访问,因为另一个进程正在使用它
错误出现


我做错了什么?

System.IO.File.ReadAllText和System.IO.File.WriteAllText都在完成文件后关闭文件,并按照完成文件。这个问题源于web的异步特性,如果在文件打开时有多个请求,您将看到错误。以下是一些让你开始学习的方法

这里有更多的链接供您选择


这不是死锁,单例不是死锁的解决方案。@ProgrammingDude如何正确执行?如果两个并发请求到达编辑同一文件,会发生什么?@ProgrammingDude,不需要显式关闭文件。我明白了。很抱歉造成混淆…注释已删除。不幸的是,使用第一链接的方法会得到相同的结果