2010-06-29 10 views
0

캐싱을 계속할 수 있도록이 게시물을 읽었으며 문제가 발생했습니다. 나는 다음과 같은 오류가 아래의 메서드 호출을 할 때 :Spring.NET 캐싱에 문제가 있습니다.

"Cannot initialize property or field node 'LocalTariffId' because the specified context is null." 

나는 내 데이터를 캐시에 반환하면 결과의 LocalTariffId 속성을 사용합니다 아래 사용하고있는 특성 구문을 생각했다. 이 오류는 메소드에 들어가 자마자 발생합니다. 너무 빨리 그 자산에 접근하려하고있는 것 같습니다. 나는 당신이 제공 할 수있는 어떤 충고도 크게 평가 될 수 있도록 뭔가를 놓치고 있어야합니다!

[CacheResult("AspNetCache", "'LocalTariff.Id=' + LocalTariffId", TimeToLive = "00:10:00")] 
public Domain.LocalTariffs.LocalTariff GetDefault(string agencyCode) 

첫 번째 오류가 발생한 후에도 이상한 오류가 발생했습니다. 누군가가 밝힐 수 있기를 바랬습니다. 그것은 최소한 log4net과 관련이 있다고 생각합니다. 내 로깅이 제대로 작동하는지 알지 못합니다.

IGCSoftware.HHG.Business.LocalTariffsFacade - Exception thrown in GetDefaultLocalTariff;GetDefaultLocalTariff;9c0bb393-369c-4501-a2ce-9325fe525e38;183341 ms 
<log4net.Error>Exception rendering object type [Spring.Core.NullValueInNestedPathException]<stackTrace>System.BadImageFormatException: The parameters and the signature of the method don't match. 
    at System.Reflection.RuntimeParameterInfo.GetParameters(IRuntimeMethodInfo methodHandle, MemberInfo member, Signature sig, ParameterInfo& returnParameter, Boolean fetchReturnParameter) 
    at System.Reflection.RuntimeMethodInfo.FetchNonReturnParameters() 
    at System.Reflection.RuntimeMethodInfo.GetParameters() 
    at System.Diagnostics.StackTrace.ToString(TraceFormat traceFormat) 
    at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 
    at System.Exception.GetStackTrace(Boolean needFileInfo) 
    at System.Exception.ToString(Boolean needFileLineInfo) 
    at System.Exception.ToString() 
    at log4net.ObjectRenderer.DefaultRenderer.RenderObject(RendererMap rendererMap, Object obj, TextWriter writer) 
    at log4net.ObjectRenderer.RendererMap.FindAndRender(Object obj, TextWriter writer)</stackTrace></log4net.Error> 

답변

1

반환 된 개체를 사용하여 CacheResult 특성의 키를 생성 할 수 없습니다. 메소드의 매개 변수를 사용하여 키를 생성해야합니다 (여기 '#agencyCode').

+0

브루노,이 포스트에 관해서는 http://forum.springframework.net/showpost.php?p=10767&postcount=2 귀하의 게시물 하단에 나는 당신이 반환 개체의 속성을 참조하는 줄 알았는데 ([CacheResultItems ("thingById", "Id")] // Thing.Id를 키로 사용합니다. 이걸 조금 더 명확히 해 주시겠습니까? – avidgoffer