3

XML ファイルを取得してデータベースに格納する WCF Web サービスを作成しました。「低負荷」ではすべてが正常に機能しましたが、高負荷では予期しない動作が発生し、これまでのところ問題の正確な原因を特定できていません。誰か提案がありますか?

これは、ログに「時々」表示される例外です-10 000のうち25回のように:

Exception: System.NullReferenceException: Object reference not set to an instance of an object.
   at System.Data.Objects.ObjectStateManager.DetectConflicts(IList`1 entries)
   at System.Data.Objects.ObjectStateManager.DetectChanges()
   at System.Data.Entity.Internal.InternalContext.GetStateEntry(Object entity)
   at System.Data.Entity.DbContext.Entry(Object entity)
... rest of my stacktrace

これは時々発生することがわかり、現在、これが同時実行性と関係があるかどうかを調べています (他のスレッドが同じエンティティで動作している可能性があります)。どこを探すべきかについて、誰かが私にいくつかの指針を与えることができますか?

4

1 に答える 1

0

NullReferenceException 値が Nothing/null である参照変数を使用しようとすると発生します。

参照変数の値が Nothing/null の場合、ヒープ上に存在するオブジェクトのインスタンスへの参照を実際には保持していないことを意味します。

何が問題なのかわかりませんが、スレッドに問題があると思います。少数のユーザーで問題なく機能するため。負荷が増加したときに、パフォーマンスを向上させるために複数のスレッドを使用した可能性があります。スレッドが非同期で実行されると、この問題が発生する可能性が高くなります.!!

私が提供できる解決策は、スレッドをカスタム指定し、 Objects を同期することです。おそらくそれは問題を解決します。

于 2013-09-02T07:04:31.020 に答える