사후 백업 중 '개체의 현재 상태로 인해 작업이 유효하지 않습니다' 오류
정상적으로 동작하고 있는 aspx 페이지가 있었는데, 포스트백이 실행될 때마다 갑자기 "Operation is not valid to current state of object"라는 오류가 나타납니다.
스택 트레이스는 다음과 같습니다.
를 클릭합니다.Web.Http Value Collection.ThrowIfMaxHttpCollectionKeysExceeded()
를 클릭합니다.Web.Http Value Collection.Fill From Encoded Bytes (Byte []바이트, 인코딩)
를 클릭합니다.Web.HttpRequest.FillInFormCollection()
누가 좀 도와줄래?
누군가가 당신의 페이지에 꽤 많은 양식 필드를 게시했습니다.최근 보안 업데이트에서 도입된 새로운 기본 최대값은 1000입니다.
web.config에서 다음 설정을 추가해 보십시오.<appsettings>
이 블록에서는 MaxHttpCollection 값을 최대화하고 있습니다.이것은 .net Framework에 의해 설정된 기본값을 덮어씁니다.폼의 필요에 따라 값을 변경할 수 있습니다.
<appSettings>
<add key="aspnet:MaxHttpCollectionKeys" value="2001" />
</appSettings>
상세한 것에 대하여는, 이 투고를 읽어 주세요.Microsoft의 보안 패치에 대한 자세한 내용은 이 기술 자료 문서를 참조하십시오.
그리드 뷰에 페이징을 적용하지 않았고 600개 이상의 레코드(체크박스, 버튼 등)까지 확장되며 2001년 값은 작동하지 않았습니다.값을 늘릴 수 있습니다. 예를 들어 10000과 테스트입니다.
<appSettings>
<add key="aspnet:MaxHttpCollectionKeys" value="10000" />
</appSettings>
ASP의 경우.NET 1.1, 이것은 1000개 이상의 폼필드를 투고하고 있는 것이 원인입니다만, 설정 파일이 아닌 레지스트리에서 설정을 변경할 필요가 있습니다.아래 레지스트리에 MaxHttpCollectionKeys라는 이름의 DWORD로 추가해야 합니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\1.1.4322.0
32비트판 Windows 및
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\ASP.NET\1.1.4322.0
64비트 에디션의 Windows용.
스택 트레이스가 다음과 같은 경우 대량의 json 객체를 서버로 전송하고 있습니다.
Operation is not valid due to the current state of the object.
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)
문제를 해결하려면 다음 키를 사용하여 웹 구성을 업데이트하십시오.스택 트레이스를 취득할 수 없는 경우는, 피들러를 사용해 주세요.그래도 문제가 해결되지 않으면 10000개 정도로 늘려보세요.
<configuration>
<appSettings>
<add key="aspnet:MaxJsonDeserializerMembers" value="1000" />
</appSettings>
</configuration>
상세한 것에 대하여는, 이 Microsoft Knowledge Base 기사를 참조해 주세요.
언급URL : https://stackoverflow.com/questions/8832470/operation-is-not-valid-due-to-the-current-state-of-the-object-error-during-pos
'source' 카테고리의 다른 글
파일 또는 어셈블리의 Microsoft를 로드할 수 없습니다.테이블 저장소를 사용하는 Azure 클라우드 작업자 역할의 Data.ODATA 버전=5.2.0.0 오류 (0) | 2023.04.22 |
---|---|
셸에서 문자열을 분할하여 마지막 필드를 가져오는 방법 (0) | 2023.04.22 |
여러 이벤트를 표시하는 타임라인 차트를 작성하려면 어떻게 해야 합니까?예: Wiki의 메탈리카 밴드 멤버 타임라인 (0) | 2023.04.22 |
Bash에서 CSV 파일을 해석하는 방법 (0) | 2023.04.22 |
인터페이스 빌더의 iOS 멀티라인 라벨 (0) | 2023.04.22 |