Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net IOException:进程无法访问文件';文件名';因为它正被另一个进程使用_Asp.net_Freetextbox - Fatal编程技术网

Asp.net IOException:进程无法访问文件';文件名';因为它正被另一个进程使用

Asp.net IOException:进程无法访问文件';文件名';因为它正被另一个进程使用,asp.net,freetextbox,Asp.net,Freetextbox,我的asp.net项目中有以下代码: protected void btnSave_Click(object sender, EventArgs e) { try { using (StreamWriter sw = File.CreateText(Server.MapPath(@"~/AboutUs.txt"))) { sw.Write(FreeTextBox1.Text);

我的asp.net项目中有以下代码:

protected void btnSave_Click(object sender, EventArgs e)
    {
        try
        {
            using (StreamWriter sw = File.CreateText(Server.MapPath(@"~/AboutUs.txt")))
            {
                sw.Write(FreeTextBox1.Text);
                sw.Close();
                sw.Dispose();
                lblError.Text = "تغییرات با موفقیت ذخیره شد.";
                lblError.CssClass = "success";
            }
        }
        catch (Exception ex)
        {
            lblError.Text = "خطایی روی داده است!" + "\n" + ex.ToString();
            lblError.CssClass = "error";

        }
        finally
        {
            lblError.Visible = true;
        }

    }
当我点击
btnSave
时,有时(并非总是)会发生以下错误:

IOException:进程无法访问文件“filename”,因为其他进程正在使用该文件


为什么?

您只需在看到windows任务管理器-->进程后运行应用程序,运行的任何notepad.exe只需右键单击,然后单击“结束进程”

当两个人同时按下按钮时,当第二个人进入文件时,第一个人是否仍在写入文件?此外,我不确定在using语句中处理streamwriter时会发生什么;using语句已调用dispose方法。在文档中,我也没有发现需要调用close方法。我还会将lblError.xxxx代码移到using语句之外。完整地说:您也可以使用
File.writealText()
方法。首先尝试@Michel的建议,我还认为问题最可能的原因是多次单击按钮(实现某种锁定机制来防止)。此外,您不希望将完整的stacktrace显示为错误消息,并且“\n”不能在网页上用作换行符,请改用“
”。祝你好运