2012-02-17 9 views
0

私は自分のWebサイトでAutoMapperを使用しています。素晴らしいですが、2週間に1回、黄色のページが表示されます(下記のスタックトレースを参照)。これを解決する唯一の方法は、サイトを再起動することです(アプリケーションプールをリサイクルする)。 AutoMapperのバージョン:2.0.9999(ファイルのプロパティで表示)AutoMapperはサイトを「ロック」してIndexOutOfRangeExceptionをスローします

これは何が原因で発生する可能性がありますか?これは構成ステップ(一度起こる)の失敗ですか? ILSpyでSystem.Linq.Enumerable FirstOrDefaultを見ると

[IndexOutOfRangeException: Index was outside the bounds of the array.] 
    System.Collections.Generic.Enumerator.MoveNext() +75 
    System.Linq.Enumerable.FirstOrDefault(IEnumerable`1 source, Func`2 predicate) +166 
    AutoMapper.ConfigurationStore.FindExplicitlyDefinedTypeMap(Type sourceType, Type destinationType) +147 
    AutoMapper.ConfigurationStore.FindTypeMap(Object source, Type sourceType, Type destinationType, String profileName) +169 
    AutoMapper.ConfigurationStore.FindTypeMapFor(Object source, Type sourceType, Type destinationType) +279 
    AutoMapper.MappingEngine.Map(Object source, Type sourceType, Type destinationType) +71 
    AutoMapper.MappingEngine.Map(TSource source) +190 
    AutoMapper.Mapper.Map(TSource source) +105 
    WowReforge.ViewModels.ReforgeViewModel.LoadToonGear(IDictionary`2 gear, IDictionary`2 itemsRefInfo) +307 
    ... 

答えて

1

それはあなたが提供するスタックトレースに示されているように、IEnumerator.MoveNextへの呼び出しは、そこにあります。しかし、それはIEnumeratorの実装が何であるかを示していません。それで、実際にMoveNextで何が起こるかを知るのは難しいです。

マッピングに含まれるオブジェクトは何ですか?どのような種類のコレクションを使用していますか?

あなた自身のIEnumeratorの実装を使用している場合、現在の値を提供するときやMoveNextメソッドで間違ったインデックスを計算するときに間違っている可能性がありますか?

+0

カスタム列挙子がありません。私はAutoMapperを設定し、.Mapを呼び出します。何も難しい。 –

+0

これ以上の情報がなければ何も言い難いです。 IISは何を言いますか?スレッドOK? –

関連する問題