2013-05-14 120 views
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異常:該進程無法訪問該文件「文件名」,因爲它正被另一個進程使用

爲什麼?

+1

當兩個人同時按下按鈕時,第一個人在第二個人進入時仍在寫入文件?除此之外,我不確定在使用聲明中處理Streamwriter時會發生什麼; using語句已經調用了dispose方法。在文檔中,我也沒有發現需要調用close方法。我還會將使用語句之外的lblError.xxxx代碼移出。爲了完成:你也可以使用'File.WriteAllText()'方法。 – Michel 2013-05-14 07:16:27

+0

首先嚐試@Michel的建議,我也認爲最可能的原因是多個按鈕點擊(實施某種鎖定機制以防止它)。此外,您不希望將完整的堆棧跟蹤顯示爲錯誤消息,並且\ n「wo'nt在網頁上以換行符的形式工作,請改爲使用」
「。祝你好運! – Hanno 2013-05-14 07:22:12

回答

-1

你只需在看到windows任務管理器 - >進程後運行你的應用程序,運行你的任何notepad.exe只需右鍵單擊然後單擊結束進程。 。

相關問題