質問

ソースデータは、当社のメインのWebアーキテクチャから別々のサーバー上にあるので、私は私のasp.netアプリケーションでキャッシュされたシンプルなルックアップテーブルの束を持って、それはまれにしか変更されます。私はここに、様々なドキュメントの回答を追ってきたと私は私の最初のロード機能は以下を呼び出す必要があります:

HttpContext.Current.Cache.Insert("CheckLocations", GetAllCheckLocations(), _
                                 Nothing, DateAdd(DateInterval.Day, 1, Now()), _
                                 System.Web.Caching.Cache.NoSlidingExpiration, _
                                 CacheItemPriority.Normal, _
                                 New CacheItemRemovedCallback(AddressOf CheckLocationsExpired))

私のキャッシュ期限切れのコールバックのために、私は次のコードを持っています。

Public Shared Sub CheckLocationsExpired(ByVal key As String, ByVal value As Object, ByVal reason As CacheItemRemovedReason)

   Dim dtCheckLocation As New ReferenceSchema.CheckLocationDataTable
   dtCheckLocation = GetAllCheckLocations()

   HttpContext.Current.Cache.Insert("CheckLocations", dtCheckLocation, Nothing, _
                                    DateAdd(DateInterval.Day, 1, Now()), _
                                    System.Web.Caching.Cache.NoSlidingExpiration, _
                                    CacheItemPriority.Normal, _
                                    New CacheItemRemovedCallback(AddressOf CheckLocationsExpired))

End Sub

のレコードについて、GetAllCheckLocations方法は、単純にウェブサービスを呼び出して、格納されたデータテーブルに結果を解析します。

私は地元のテストのためにアプリケーションを再コンパイルするとき、

さて、すべてはまだ細かい機能が、私は私のログファイルに次の例外メッセージを見つけます:

  

System.NullReferenceException:オブジェクト参照のインスタンスに設定されていません   オブジェクト。 EAF.CacheMethods.CheckLocationsExpired(文字列のキーで、オブジェクトの値が、   CacheItemRemovedReason理由)で   C:CacheMethods.vb \ DAL \プロジェクト\ \ HR \ EAF 2.0:ライン434で   System.Web.Caching.CacheEntry.CallCacheItemRemovedCallback(CacheItemRemovedCallback   コールバック、CacheItemRemovedReason理由)

私は、データが実際に存在し、最新であることを確認し、私は、デバッガをステップ実行するとき、コマンドの引数には何も場違いようだ。

誰もが、私はここに欠けているものを知っていますか?これは、処理を終了することは技術的にスレッドアボート例外をスローReponse.Redirectの問題のようなものを「ニュアンス」の別のものですか?

役に立ちましたか?

解決

それはあなたがそれにコールバック関数を与えていないうちに例外まだいますか?委任機能がnullのオブジェクトとの問題を持っているより多くのように思える。

scroll top