2012-01-23 2 views
0

우리의 응용 프로그램은 많은 공유 구성 요소를 사용합니다. 그들 중 일부는 캐싱을 할 필요가 없습니다. 예를 들어 이메일을 보내지 않은 이메일을 처리하는 Windows 서비스가 있습니다. 결과 집합을 캐싱하지 마십시오 ...현재 프로젝트에서 SqlDependency.Start (connectionstring)가 호출되었는지 확인 하시겠습니까?

문제는 우리의 공유 데이터 계층이 SqlCacheDependency를 사용하도록 수정 되었기 때문에 SqlDependency를 시작하지 않는 서비스가 데이터 계층에서 SqlCacheDependency 개체를 요청하는 데이터베이스 호출에 실패합니다 .

이것은 데이터 클래스가 브로커 서비스가 수신 대기 중인지 (예 : SqlDependency.Start (connectionString) 호출 여부)를 테스트하는 방법이 있습니까?

SqlDependency 개체 자체에는 사용 또는 유사한 속성이 없습니다. 어떤 방법 으로든 호출 응용 프로그램을 강제로 부족합니다 SqlCaching 데이터 계층에 대한 상태를 결정하는 데 사용되는 데이터 계층을 말해?

+0

이것은 Tumbleweed 배지를 얻었습니다. –

답변

2

거의 대답이 없습니다. 우리는 거짓이거나 존재하지 않으면 SqlCacheDependency 사용 요청을 건너 뛸 수있는 구성 변수를 추가했습니다. 이름 LIKE 'SqlQueryNotificationService- %'

는 'SqlQueryNotificationService-을 [일부 GUID]'

그리고 반환 sys.service_queues FROM

1

SELECT * 당신은 SqlDependency의 비공개 회원 깊은 보면 _serverUserHash IDE에서 디버깅하는 동안 동일한 항목이 포함 된 모음을 찾을 수 있습니다. 마이크로 소프트가 그렇게 친절하다면, 그렇다.

+0

기본적으로 런타임에는 no입니다. –

0

제 경우에는 일부 웹 응용 프로그램에서 사용하는 클래스 라이브러리가 있습니다. 그래서 App.config가 없습니다. 또한 정적 이벤트에서 SqlCacheDependency를 사용합니다. 그래서 같은 정적 부울을 사용하고 있습니다 :

if (!isCachingEnabled) 
    isCachingEnabled = SqlDependency.Start(builder.ProviderConnectionString); 

을 지금까지 노력하고 있지만, 클래스 라이브러리를 사용할 때 내가 제안을 개방적이야.

관련 문제