Sign in with Microsoft
Sign in or create an account.
Hello,
Select a different account.
You have multiple accounts
Choose the account you want to sign in with.

結論

Microsoft 安全性更新 MS11-100 會將 HTTP 要求中的表單金鑰、檔案和 JSON 裝載成員的最大數量限制為 1000。因為此變更的緣故,ASP.NET 應用程式會拒絕具有超過 1000 個上述元素的要求。發出上述種類要求的 HTTP 用戶端會遭到拒絕,而網頁瀏覽器中會出現錯誤訊息。錯誤訊息通常內含 HTTP 500 狀態碼。你可以每個應用程式為單位個別為其建立新限制。如需設定指示,請參閱<解決方式>一節。


徵狀

具有大量表單金鑰、檔案或 JSON 裝載的 ASP.NET 請求會收到來自伺服器的錯誤訊息。伺服器上的應用程式記錄檔具有內含 ASP.NET 特定版本專屬來源的警告項目及事件識別碼 1309。事件記錄檔會包含下列其中一個訊息:


訊息 1:

應用程式資訊:
應用程式定義域:/LM/W3SVC/1/ROOT/<App Domain>
信任層級:中安全性
應用程式虛擬路徑:<VDIR 路徑>
應用程式路徑:<應用程式路徑>
電腦名稱:<電腦名稱>
處理序資訊:
處理序識別碼: 0001
處理序名稱:w3wp.exe
帳戶名稱:IIS APPPOOL\DefaultAppPool

例外狀況資訊:
例外狀況類型:HttpException
例外狀況訊息:URL 編碼型式資料無效。
at System.Web.HttpRequest.FillInFormCollection()
at System.Web.HttpRequest.get_Form()
at System.Web.HttpRequest.get_HasForm()
at System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)
at System.Web.UI.Page.DeterminePostBackMode()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)


訊息 2:

應用程式資訊:
Application domain:/LM/W3SVC/1/ROOT/<App Domain>
信任層級:中度
應用程式虛擬路徑:<VDIR 路徑>
應用程式路徑:<應用程式路徑>
電腦名稱:<電腦名稱>

處理序資訊:
處理序識別碼: 0001
處理序 name:w3wp.exe
帳戶名稱:IIS APPPOOL\DefaultAppPool

例外狀況資訊:
例外狀況類型:InvalidOperationException
例外狀況訊息:物件的目前狀態導致作業無效。
at System.Web.HttpRequest.FillInFilesCollection()
at System.Web.HttpRequest.get_Files()
at FileUpload.Page_Load(Object sender, EventArgs e)
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint


訊息 3:

應用程式資訊:
Application domain:/LM/W3SVC/1/ROOT/<App Domain>
信任層級:中度
應用程式虛擬路徑:<VDIR 路徑>
應用程式路徑:<應用程式路徑>
電腦名稱:<電腦名稱>

處理序資訊:
處理序識別碼: 0001
處理序 name:w3wp.exe
帳戶名稱:IIS APPPOOL\DefaultAppPool

例外狀況資訊:
例外狀況類型:InvalidOperationException
例外狀況訊息:物件的目前狀態導致作業無效。
at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary(Int32 depth)
at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)
at System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer)
at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)
at System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject(String input)
at Failing.Page_Load(Object sender, EventArgs e)
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)



IIS 記錄檔會顯示類似下列的項目:

2011-01-01 00:00:00 ::1 POST /machine/default.aspx - 80 - ::1 - 500 0 0 187




發生的原因

資訊安全佈告欄 MS11-100 敘述的 Microsoft 安全性更新,會將表單金鑰、檔案和 JSON 成員的預設最大數量限制變更為 ASP.NET 要求可接受的 1000。此變更主要是解決 Microsoft 資訊安全佈告欄 MS11-100 文件中拒絕服務的弱點。


解決方案

達到此表單金鑰或檔案限制的應用程式可依照下方所示的 ASP.NET 應用程式設定檔內容修改 ASP.NET appSetting aspnet:MaxHttpCollectionKeys。此設定可解決<徵狀>一節中的錯誤訊息 1 和 2。

<configuration>
<appSettings>
<add key="aspnet:MaxHttpCollectionKeys" value="1000" />
</appSettings>
</configuration>



注意 如果您是在 x86 系統上使用 ASP.NET 1.1,請將 DWORD 值新增到下列登錄機碼來調整此設定:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\1.1.4322.0\MaxHttpCollectionKeys

如果您是在 x64 系統上使用 ASP.NET 1.1,請將 DWORD 值新增到下列登錄機碼來調整此設定:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\ASP.NET\1.1.4322.0\MaxHttpCollectionKeys




達到此 JSON 裝載限制的應用程式可依照下方所示的 ASP.NET 應用程式設定檔內容修改 ASP.NET appSetting aspnet:MaxJsonDeserializerMembers。此設定可解決<徵狀>一節中的錯誤訊息 3。

<configuration>
<appSettings>
<add key="aspnet:MaxJsonDeserializerMembers" value="1000" />
</appSettings>
</configuration>




注意 將此值設定超過預設設定值可加強伺服器對資訊安全佈告欄 MS11-100 中所述的拒絕服務弱點的偵測能力。


参考

如需資訊安全佈告欄 MS11-100 的詳細資訊,請參閱下列 TechNet 文章:

Microsoft 資訊安全佈告欄 MS11-100 - 重要 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2638420 MS11-100:.NET Framework 中的弱點可能會允許權限提高:2011 年 12 月 29 日

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?
By pressing submit, your feedback will be used to improve Microsoft products and services. Your IT admin will be able to collect this data. Privacy Statement.

Thank you for your feedback!

×