オブジェクトの現在の状態のため、操作は無効です。説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーの詳細とコードのどこで発生したかについては、スタックトレースを確認してください。
例外の詳細:System.InvalidOperationException:オブジェクトの現在の状態が原因で、操作は無効です。
ソースエラー:
現在のWeb要求の実行中に、未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタックトレースを使用して特定できます。
スタックトレース:
[InvalidOperationException:オブジェクトの現在の状態が原因で、操作は無効です。]
System.Web.HttpValueCollection.ThrowIfMaxHttpCollectionKeysExceeded()+2692302 System.Web.HttpValueCollection.FillFromEncodedBytes(Byte [] bytes、Encoding encoding)+61
System.Web.HttpRequest.FillInFormCollection()+148[HttpException(0x80004005):URLエンコードされたフォームデータは無効です。] System.Web.HttpRequest.FillInFormCollection()+206
System.Web.HttpRequest.get_Form()+68
System.Web.HttpRequest.get_HasForm()+8735447
System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)+97 System.Web.UI.Page.DeterminePostBackMode()+63 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint、Boolean includeStagesAfterAsyncPoint)+ 133
バージョン情報:Microsoft .NET Frameworkバージョン:2.0.50727.3634; ASP.NETバージョン:2.0.50727.3634 `
問題は、Microsoft Security Update MS11-100がHTTP POST要求中にFormsコレクションのキーの数を制限するためです。この問題を軽減するには、その数を増やす必要があります。
これは、アプリケーションのWeb.Configの
<appSettings>
セクションで実行できます(存在しない場合は、<configuration>
の直下にセクションを作成します)。セクションに以下の行のような2行を追加します。<add key="aspnet:MaxHttpCollectionKeys" value="2000" /> <add key="aspnet:MaxJsonDeserializerMembers" value="2000" />
上記の例では、制限を2000キーに設定しています。これにより制限が解除され、エラーが解消されます。
これは電話をかけると起こります
.SingleOrDefault()
2つ以上の要素を持つIEnumerableで。
この問題に対する回答はすでに受け入れられていますが、誰かがweb.configの外部で実行できる解決策があるかどうかをコメントで尋ねました。 ListViewでまったく同じエラーが発生し、EnableViewStateをfalseに設定すると、この問題は解決しました。