System.InvalidOperationException: 由於該物件目前的狀態,導致作業無效3/22

近兩日電腦在不斷地執行windows update,今天運行某個頁面時就出現下面的錯誤訊息:

由於該物件目前的狀態,導致作業無效。
描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。

例外詳細資訊: System.InvalidOperationException: 由於該物件目前的狀態,導致作業無效。

原始程式錯誤:

在執行目前 Web 要求期間,產生無法處理的例外狀況。如需有關例外狀況來源與位置的資訊,可以使用下列的例外狀況堆疊追蹤取得。 

堆疊追蹤:
[InvalidOperationException: 由於該物件目前的狀態,導致作業無效。]
   System.Web.HttpValueCollection.FillFromEncodedBytes(Byte[] bytes, Encoding encoding) +126
   System.Web.HttpRequest.FillInFormCollection() +154

[HttpException (0x80004005): URL 編碼型式資料無效。]
   System.Web.HttpRequest.FillInFormCollection() +213
   System.Web.HttpRequest.get_Form() +50
   System.Web.UI.Page.GetCollectionBasedOnMethod() +70
   System.Web.UI.Page.DeterminePostBackMode() +128
   System.Web.UI.Page.ProcessRequestMain() +63

 

原因如下:
 http://blog.miniasp.com/post/2012/01/01/Efficient-Denial-of-Service-Attacks-on-Web-Application-Platforms.aspx

http://technet.microsoft.com/en-us/security/bulletin/ms11-100

推薦最有效的解決辦法:

http://social.microsoft.com/Forums/pt-BR/1761/thread/6a506f6e-0d8c-463d-9944-cdcda6d9dc1b

http://stackoverflow.com/questions/8684049/asp-net-ms11-100-how-can-i-change-the-limit-on-the-maximum-number-of-posted-for

这种做法对vs2003版比较有效,之后版本就要在web.config中增加

<appSettings>

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

原文地址:https://www.cnblogs.com/daisylh/p/2411645.html