2017-12-14 20 views
0

我々は定期的にMVCフレームワーク内からエラーを取得:多くの情報を得られないMVC 4 - SessionStateItemCollection - インデックスが配列の境界外です - TempDataDictionary

Index was outside the bounds of the array. at System.Collections.ArrayList.get_Item(Int32 index) 
    at System.Collections.Specialized.NameObjectCollectionBase.BaseRemove(String name) 
    at System.Web.SessionState.SessionStateItemCollection.Remove(String name) 
    at System.Web.HttpSessionStateWrapper.Remove(String name) 
    at System.Web.Mvc.SessionStateTempDataProvider.LoadTempData(ControllerContext controllerContext) 
    at System.Web.Mvc.TempDataDictionary.Load(ControllerContext controllerContext, ITempDataProvider tempDataProvider) 
    at System.Web.Mvc.Controller.PossiblyLoadTempData() 
    at System.Web.Mvc.Controller.BeginExecuteCore(AsyncCallback callback, Object state) 
    at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.Begin(AsyncCallback callback, Object state, Int32 timeout) 
    at System.Web.Mvc.Controller.BeginExecute(RequestContext requestContext, AsyncCallback callback, Object state) 
    at System.Web.Mvc.MvcHandler.<>c__DisplayClass8.<BeginProcessRequest>b__2(AsyncCallback asyncCallback, Object asyncState) 
    at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.Begin(AsyncCallback callback, Object state, Int32 timeout) 
    at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) 
    at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 

このエラーをグーグルで...

Webアプリケーションの一部では、セッション状態の動作をReadonlyに設定して、複数のイメージを読み込む際のクライアント側のパフォーマンスを向上させました。いくつかの一般的なコードのため、これらの要求にはMVCのtempdataも設定されています。これはエラーを引き起こす可能性がありますか?

これにより、ユーザーがWebアプリケーションの他の領域に行ってもエラーが発生する可能性がありますか? (そのような場合) そうでない場合は、このエラーの原因として考えられる他の原因は何ですか?

答えて

0

スタックを読み込むと、TempDataが使用されたように見えます。 TempDataはリダイレクト後にセッション状態のデータを破壊するため、次のステップではセッションからSessionStateItemCollection.Remove(セッション変数を削除するために呼び出される)経由でエントリを削除します。 SessionStateItemCollectionはNameObjectCollectionBaseを継承しているため、(その基本クラス内の)ArrayListという項目はすべて内部操作です。

関連する問題