ASP.net MVC4 웹 사이트를 사용하여 사용자를 업데이트하려고 할 때마다이 오류가 발생합니다. 알아 내도록 도와주세요. 이것은 이전에 아무런 문제없이 작동했습니다.
ErrorCode<ERRCA0012>:SubStatus<ES0001>
: 참조중인 개체가 클라이언트에 의해 잠겨 있지 않습니다.
설명 : 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. 오류 및 코드에서 오류가 발생한 위치에 대한 자세한 내용은 스택 추적을 검토하십시오.
예외 정보 : Microsoft.ApplicationServer.Caching.DataCacheException: ErrorCode<ERRCA0012>:SubStatus<ES0001>:
참조중인 개체가 클라이언트에 의해 잠겨 있지 않습니다.
소스 오류 :
현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 생성되었습니다. 아래의 예외 스택 추적을 사용하여 예외의 출처 및 위치에 대한 정보를 식별 할 수 있습니다.
스택 추적 :
[DataCacheException: ErrorCode<ERRCA0012>:SubStatus<ES0001>:Object being referred to is not locked by any client.]
Microsoft.ApplicationServer.Caching.DataCache.ThrowException(ErrStatus errStatus, Guid trackingId, Exception responseException, Byte[][] payload, EndpointID destination) +551
Microsoft.ApplicationServer.Caching.SocketClientProtocol.ExecuteApi(IVelocityRequestPacket request, IMonitoringListener listener) +287
Microsoft.ApplicationServer.Caching.SocketClientProtocol.PutAndUnlock(String key, Object value, DataCacheLockHandle lockHandle, TimeSpan timeout, DataCacheTag[] tags, String region, IMonitoringListener listener) +360
Microsoft.ApplicationServer.Caching.DataCache.InternalPutAndUnlock(String key, Object value, DataCacheLockHandle lockHandle, TimeSpan timeout, DataCacheTag[] tags, String region, IMonitoringListener listener) +216
Microsoft.ApplicationServer.Caching.<>c__DisplayClass9d.<PutAndUnlock>b__9c() +160
Microsoft.ApplicationServer.Caching.DataCache.PutAndUnlock(String key, Object value, DataCacheLockHandle lockHandle, TimeSpan timeout) +276
Microsoft.Web.DistributedCache.<>c__DisplayClass1c.<PutAndUnlock>b__1b() +52
Microsoft.Web.DistributedCache.<>c__DisplayClass31`1.<PerformCacheOperation>b__30() +19
Microsoft.Web.DistributedCache.DataCacheRetryWrapper.PerformCacheOperation(Action action) +208
Microsoft.Web.DistributedCache.DataCacheForwarderBase.PerformCacheOperation(Func`1 func) +167
Microsoft.Web.DistributedCache.DataCacheForwarderBase.PutAndUnlock(String key, Object value, DataCacheLockHandle lockHandle, TimeSpan timeout) +162
System.Web.SessionState.SessionStateModule.OnReleaseState(Object source, EventArgs eventArgs) +929
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +270
요청이 시간 초과되지 않았는지 확인하십시오. 우리는 또한 프로젝트에서 똑같은 문제에 직면했고이 블로그 게시물이이 문제가 발생한 이유를 찾는 데 정말 도움이된다는 것을 발견했습니다 : http://www.anujvarma.com/session-storage-app-fabric-cache/ .
처음에 한 가지 작업은 블로그 게시물에 언급 된대로 web.config에서 요청 시간 제한을 5 분 (300 초)으로 늘 렸습니다. 그러나 우리는 시간 초과 문제가 발생한다는 것을 알고있는 작업에 대해서만 수행했습니다. 모든 작업의 시간 제한을 변경하려면 게시물에 언급 된 다음과 같은 작업을 수행 할 수 있습니다.
<system.web>
<httpRuntime executionTimeout = "300"/>
</system.web>
또는 특정 작업에 대한 시간 제한을 늘릴 수 있습니다.
<location path="Controller/Action">
<system.web>
<httpRuntime executionTimeout="300"/>
</system.web>
</location>
IMHO, 두 번째 옵션은 전체 사이트 대신 특정 작업을 타겟팅하기 때문에 첫 번째 옵션보다 더 선호됩니다.
그러나 내 의견에서도 언급했듯이 이것은 실제로 완벽하지 않습니다. 더 나은 대안은 먼저 코드를 최적화하여 요청이 오래 걸리지 않도록하는 것입니다. 우리의 경우 스토리지 작업에 대한 잘못된 재시도 정책이 있었고 해당 재시도 정책을 수정하여 문제를 해결했습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다