當您是在壓力下的 ASP.NET 應用程式中使用自訂組態區段處理常式時,便會發生存取違規

文章翻譯 文章翻譯
文章編號: 307513 - 檢視此文章適用的產品。
本文已封存。本文係以「現狀」提供且不會再更新。
本文參照下列 Microsoft.NET Framework 類別庫的命名空間:
  • System.Configuration
全部展開 | 全部摺疊

徵狀

如果 ASP.NET 應用程式使用自訂組態區段處理常式的型別存取違規的第一個可能發生例外狀況可能會發生在 [Aspnet_wp.exe 處理序 (或 W3wp.exe 處理 foran Microsoft 網際網路資訊服務 [IIS] 6.0 執行的應用程式) ASP.NET 應用程式在強大壓力下時。

發生的原因

當多個執行緒正在存取相同的組態物件同時如果 IConfigurationSectionHandler 介面的實作不是安全執行緒並沒有狀態 (Stateless),或 建立 方法會傳回的物件不是執行緒安全和不變時,就會發生這個問題。

解決方案

當您建立自訂的 ASP.NET 組態區段處理常式時,請遵循下列指導方針,當您實作 IConfigurationSectionHandler 介面:
  • 您類別的實作 IConfigurationSectionHandler 介面的執行個體必須是安全執行緒和沒有狀態 (Stateless)。
  • IConfigurationSectionHandler.Create 方法會傳回的物件必須是安全執行緒和不變。
  • 請勿修改 parent 引數給 IConfigurationSectionHandler.Create 方法。

狀況說明

這種行為是經過設計規劃的。

其他相關資訊

IConfigurationSectionHandler 的執行個體必須是安全執行緒和沒有狀態 (Stateless)。您必須能夠從多個執行緒同時呼叫 IConfigurationSectionHandler.Create 方法。

此外,IConfigurationSectionHandler.Create 會產生組態物件必須是安全執行緒和不變。因為組態系統會快取組態物件,很重要不修改父系"引數才能 IConfigurationSectionHandler.Create。比方說如果 IConfigurationSectionHandler.Create 的傳回值是只有小型修改的 「 父代 」,您必須修改"父,"不在原始的複本。

?考

如需有關 ASP.NET 組態,按一下下列文章編號,檢視 「 文件 「 Microsoft 知識庫 」 中:
307626ASP.NET 組態概觀
309045如何在 Visual C#.NET 中建立自訂的 ASP.NET 組態區段處理常式

屬性

文章編號: 307513 - 上次校閱: 2014年2月24日 - 版次: 3.3
這篇文章中的資訊適用於:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft .NET Framework 1.1
關鍵字:?
kbnosurvey kbarchive kbmt kbconfig kbhttphandlers kbhttpruntime kbprb kbreadme KB307513 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:307513
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com