2011-02-26 2 views
0

WCF 서비스가 IIS에서 호스팅되며 ASP.NET 응용 프로그램에서 사용합니다. 서비스와 클라이언트는 서로 다른 서버에 있으며 인터넷을 통해 통신합니다.wsHttpBinding을 사용할 때 WCF에서 화재 및 잊어 버리는 방법

Message 보안 넘버 wsHttpBinding이 보안 모델로 사용됩니다 (X.509 인증서 사용).

Fiddler으로 서비스를 테스트했는데 한 번의 통화로 4 회의 세션이있는 경우 (왕복 2 회)가 아니라면 모든 것이 정상적인 것으로 보입니다. WCF과 세션이 필요없고 WCF 메서드를 호출 할 때 차단되지 않도록 asp.net 작업자 스레드 인 내 호출 스레드를 원합니다.

WCF 서비스를 사용할 때 어떻게 화재 및 잊어 버릴 패턴을 얻을 수 있습니까? 필요하면 서비스 계약을 변경할 수 있습니까?

답변

1

Fire and forget (단방향 조작)은 조작이 결과를 리턴하지 않으며 클라이언트가 서버 처리를 기다릴 필요가 없다고 말합니다. 그러나 그것은 당신이 피들러에서 보는 인프라 축소 호출과는 아무런 관련이 없습니다. 먼저 security 요소에서 estabilishSecurityContextnegotiateServiceCredentials을 끈 다음 다시 시도하십시오.

+0

보안 모델을 사용하지 않도록 설정하지 않으니까 (전송 보안이없는 메시지 보안이 필요합니까?) – Xaqron

+0

@Xaqron : 보안 모드가 여전히 메시지로 설정된 경우 보안을 비활성화하지 않지만 estabilishSecurityContext를 비활성화하여 보안 세션을 해제하고 negotiateServiceCredentials를 비활성화하여 서비스 인증서의 클라이언트로 자동 전송을 해제합니다. 밴드 밖의 증명서. 그것은 왕복을 줄일 것입니다. –

0

"fire-and-forget"이라고 말하면 반환 매개 변수가없는 웹 서비스 호출을 말합니다. WCF는 여기에 도움이 될 One-Way Method invocation이라는 개념을 가지고 있습니다.