1
我在asp.net項目有這樣的代碼:IOException異常:該進程無法訪問該文件「文件名」,因爲它正被另一個進程使用
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異常:該進程無法訪問該文件「文件名」,因爲它正被另一個進程使用
爲什麼?
當兩個人同時按下按鈕時,第一個人在第二個人進入時仍在寫入文件?除此之外,我不確定在使用聲明中處理Streamwriter時會發生什麼; using語句已經調用了dispose方法。在文檔中,我也沒有發現需要調用close方法。我還會將使用語句之外的lblError.xxxx代碼移出。爲了完成:你也可以使用'File.WriteAllText()'方法。 – Michel 2013-05-14 07:16:27
首先嚐試@Michel的建議,我也認爲最可能的原因是多個按鈕點擊(實施某種鎖定機制以防止它)。此外,您不希望將完整的堆棧跟蹤顯示爲錯誤消息,並且\ n「wo'nt在網頁上以換行符的形式工作,請改爲使用」
「。祝你好運! – Hanno 2013-05-14 07:22:12