문제

소스 데이터가 기본 웹 아키텍처의 별도 서버에 있고 드물게 변경되므로 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 : 객체 참조는 객체의 인스턴스로 설정되지 않습니다. at at at at at at at at c : projects hr eaf 2.0 dal cachemethods.vb : system.web.caching.cacheentry.cacheentry.cacheentry.cacheentry.cacheentry.cacheentry. 이유)

나는 데이터가 실제로 존재하고 최신 상태인지 확인하고, 디버거를 밟을 때 명령 인수의 어떤 것도 제자리에 있지 않은 것처럼 보입니다.

내가 여기서 내가 무엇을 놓치고 있는지 아는 사람이 있습니까? 프로세싱이 기술적으로 스레드 중단 예외를 던지는 예외가 발생하는 REDIRECT ISSUE와 같은 "뉘앙스"중 하나입니까?

도움이 되었습니까?

해결책

콜백 기능을 제공하지 않으면 여전히 예외가 있습니까? 위임 된 함수가 널 객체에 문제가있는 것처럼 보입니다.

다른 팁

사용하고 싶을 수도 있습니다 httpruntime.cache 대신에. 단위 테스트 등에서 호출하는 경우 HTTPCONTEXT.CURRENT가 NULL 일 수 있습니다.

나의 초기 생각은 getallchecklocations가 예외를 던지거나 널을 반환하고 있다는 것입니다.

어쩌면 당신은 방법을 호출 할 수 있습니다 AJAXPro 또는 뭔가.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top