이중 비동기 호출의 성능 이점을 부정 할 수는 없지만 몇 가지 사항에 대해서는주의해야합니다.WCF 이중 클라이언트를위한 모범 사례
클라이언트 개체가 인스턴스화되면 WCF는 특정 클라이언트 서비스 인스턴스가 콜백 인수를 수신하는지 여부를 알 수 있습니까?
누구에게 말해도 될까요? 왜 안되면?
new DuplexChannelFactory<IServerWithCallback>(
new ClientService(),
new NetTcpBinding(),
new EndpointAddress("net.tcp://localhost:1234/"+Guid.NewGuid()))
가 폐기 될 수 있는지 상기 가상 경로가 확보되면
- . 나는 클라이언트 서비스 수명이 상당히 짧기를 원한다. 인터넷 익스플로러 (IE)는 요청을하고 응답을받으며 수신을 마쳤을 때 그것을 죽인다. 풀링하고 오래 유지하는 것과 달리 클라이언트 서비스 수명을 짧게 만드는 데 성능 저하가 얼마나 심합니다.
아이디어는 시간 초과 문제를 피하는 것입니다. 처리가 완료되면 최대한 빨리 처리하십시오. 관습에 따라 - 클라이언트 서비스를 전달할 수 없습니다. 정보가 필요하면 간단한 EF/L2S 등의 새로운 정보를 만드십시오.
WCF 서비스 자체에서 클라이언트와의 세션을 어떻게 종료합니까? 즉. 나는 클라이언트가 세션을 끝내기를 원하지 않는다. 나는 적절하게 내 작업을 꾸밀 수 있지만, 특정 조건이 충족 될 때 서비스가 프로그래밍 방식으로 종료되기를 원한다.
나는 방화벽 문제를 해결하기 위해 포트와 포워드를 붙일 수 있지만 클라이언트가로드 밸런서 뒤에 앉아 있으면 걱정할 것입니다. 서비스가 어떤 특정 서버를 호출하는지 어떻게 알 수 있습니까?
이 답변은 NetTcpBinding 또는 이중 Http 바인딩에 해당됩니까? – Yaniv