내가 쓰고있는 WCF의 안정적인 웹 서비스와 관련된 흥미로운 문제가 있습니다. 그것은 어떻게 든 LINQ 데이터 개체를 캐싱 것으로 보인다. 나는편안한 WCF 서비스 및 LINQ
웹 서비스는 WCF 평안한입니다 ...
이 웹 서비스에 첫 벤처이다 ... 설명하려고 내가이 나와 함께 베어하시기 바랍니다 설명에서 가난한 나는 경우 있도록 LINQ 전문가가 아니다 것 서비스는 .NET 4.0에서 빌드되며 현재 로컬 ASP.net Dev Server에서 실행 중입니다.
webservice가 유효성을 검사하기 위해 LINQ를 사용하는 일련의 유효한 IP 주소를 포함하는 MSSQL 2008 데이터베이스가 있습니다. DB로부터 허용 가능한 IP 범위에 대해 클라이언트 IP의 유효성을 검사하는 메커니즘은 독립적으로 테스트 된대로 성공적으로 작동합니다.
시나리오 : 클라이언트 IP는 127.0.0.1에게 있습니다 유효한 IP의 범위는 다음과 같습니다
내가 웹 서비스에 피들러에서 GET 요청을 수행 127.0.0.5에 127.0.0.0과 저를 제공함으로써, 정상적으로 작동 좋은 200 상태 코드를 되찾아 라. 그런 다음 DB의 범위를 127.0.0.0으로 127.0.0.0으로 변경하고 401 상태 코드를받을 때 200 개의 상태 코드를 수신합니다. 그런 다음 Visual Studio로 가서 수정없이 파일을 저장하고 Fiddler로 돌아가서 요청을 다시 발행하면 이제 원하는 401 상태 코드가 표시됩니다. 나는 캐시 제어 및에서 Pragma 헤더를 설정하고 웹 서비스에서
응답에 존재하는 "노 캐시"로 :HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Fri, 30 Jul 2010 16:12:56 GMT
X-AspNet-Version: 4.0.30319
Pragma: no-cache
Content-Length: 1121680
Cache-Control: no-cache
Content-Type: application/xml; charset=utf-8
Connection: Close
또는 ..
HTTP/1.1 401 Unauthorized
Server: ASP.NET Development Server/10.0.0.0
Date: Fri, 30 Jul 2010 16:26:48 GMT
X-AspNet-Version: 4.0.30319
Pragma: no-cache
Content-Length: 88
Cache-Control: no-cache
Content-Type: application/xml; charset=utf-8
Connection: Close
것 같다 나에게 LINQ 프로세스의 어떤 것이 원래 첫 번째 요청에서 가져온 데이터를 캐싱하고 이후의 각 요청에 대해 DB로 돌아 가지 않습니다. 웹 서비스에 파일을 저장하면 서비스를 다시 컴파일하여 다른 조회를 수행하여 데이터를 가져옵니다.
이런 상황을 본 사람이 있습니까?
데이터베이스가 결과를 캐싱 할 수 있습니까? LINQ 데이터 개체가 데이터베이스 계층에 있거나 스택의 어느 지점에있는 경우 범위를 좁히려면 LINQ 데이터 개체에 기록하고보고 싶을 수 있습니다. –