IIS에서 호스팅되는 WCF 서비스와 데스크톱 클라이언트의 통신에 직면하게 될 문제 해결에 도움이 필요합니다.
클라이언트에 멀티플 IP 주소가있는 경우 WCF 서비스 문제
- 서버가 들어있는 콜백의 URI를 제공하여
- 클라이언트이에 연결 (등록 방법) 호출 설정하는 WSDualHttpBinding 서비스를 호스팅 : 내가 내 테스트 케이스에서 할 노력하고있어
클라이언트의 IP 주소 - 연결이 설정되면 클라이언트 응용 프로그램에서 웹 페이지를 시작합니다. 사용자가 텍스트 상자에 텍스트를 입력하고 보내기를 클릭합니다. 웹 페이지는 등록 된 모든 데스크톱 클라이언트에게 텍스트를 보냅니다.
문제 :
2 단계에서, PC가 여러 개의 IP 주소 (이더넷 어댑터, 루프백 어댑터 등)이있을 수 있습니다. 등록 호출 중에이 목록의 IP가 서버 (예 : 루프백 어댑터 IP)에서 콜백 할 수없는 콜백 URL로 전송되면 시간 초과 예외가 발생합니다. 몇 번 시도한 후에는 서버가 클라이언트의 호출을 더 이상 허용 할 수 없습니다 (유효한 IP인지 그렇지 않은지 여부). 때때로 "너무 바쁜 서버"예외가 발생했습니다.
(컴퓨터가 올바른 IP 주소로 컴퓨터를 확인하지 못하게하는 DNS/WINS 구성 문제로 인해 콜백 URI에서 컴퓨터의 정규화 된 이름을 사용할 수 없습니다.)
재현 방법 :
a. IIS에 서버를 게시하십시오. 여러 IP 주소를 가진 다른 컴퓨터에서 클라이언트를 실행하십시오. 클라이언트는 3 회 시도 후 시간 초과 예외 W 프로그램 종료를 _ 생시킵니다. b. App.Config의 매개 변수를 사용하면 올바른 IP 주소 (사용할 IP)를 입력 할 수 있습니다. 이제 프로그램이 시작되면 모든 것이 잘 작동합니다.
c. 위에 지정된이 IP 주소를 제거하여 잘못된 IP가 사용되면 다시 한 번 단계가 발생합니다. 이 모드에서 프로그램을 2-3 번 실행하십시오.
d. b 단계와 같이 변경하고 프로그램을 실행하십시오. 가끔 타임 아웃 예외가 발생합니다. 다른 때에는 웹 사이트가 나타납니다. 그러나 텍스트가 입력되어 전송 될 때 클라이언트에 전송되지 않습니다. (웹 서비스가 아무런 호출도받지 못했지만 등록 메소드가 작동했는데 웹 서비스에 등록 된 클라이언트가 없기 때문에 보내기 기능이 실패합니다
왜 이런 일이 일어나고 어떻게 처리해야하는지 잘 모르겠습니다. 내 비주얼 스튜디오 솔루션 - http://bit.ly/atKfOS
고 감사 어떤 입력, 의견 환경 : 서버 - 윈도우 XP (IIS 5), 윈도우 서버 2008 SP2의 64 (7.0), 클라이언트 :. 윈도우 XP
감사 GC
감사합니다. marc_s. 나는 당신의 제안과보고를 적용 할 것입니다. 서버 쪽에서 메시지를 보내는 동안 예외가 발생하면 오류 이벤트가 발생합니다. 서비스는이 클라이언트를 등록 된 클라이언트 목록에서 제거하여 처리하고 클라이언트를 null로 설정합니다. –
당신 말이 맞습니다. 마크. 클라이언트 측 프록시를 폐기하고 예상대로 작동했습니다. 나는 프로그램이 종료 될 때 프로그램이 종료 될 것이라고 잘못 생각했다. 감사합니다. –