2012-07-20 7 views
1

WCF에서 제한된 연결로 인해 문제가 발생했습니다. 내 WCF 서비스는 IIS에서 호스팅되었으며 Windows Forms 응용 프로그램 클라이언트는 WCF에 연결됩니다. Windows_Closed 이벤트에서 client.Close() 메서드를 호출하여 "종료합니다."라는 클라이언트 WCF 서비스에 알립니다. 그러나 클라이언트가 손상된 경우 클라이언트와 WCF 서비스 간의 연결이 한동안 존재하므로 10 개의 충돌이 발생했습니다. 그때 내 애플 리케이션은 더 이상 작동하지 않았다.서버 쪽에서 WCF 서비스 연결 해제

그리고 문제는 WCF와 충돌 한 클라이언트 간의 연결을 해제하는 방법입니까? 서버의 maxConnections가 제한되어 있고 예를 들어 10과 같기 때문입니다.

고마워요! 당신이 시도 - 캐치 마지막으로 대신 가서 할 수 있도록

using(ClientClass client = new ClientClass){ 
//Call service here 
} 

이 정말 신뢰할 수 없습니다 :

답변

-1

당신은 당신의 클라이언트 코드 블록을 사용하여 사용할 수있다. 각 catch 블록에서 client.Abort가 호출되는지 확인하십시오.

+0

finally 블록은 powefailure, 메모리 부족, 스택 오버플로, ExecutingEngineException과 같은 특정 유형의 충돌에 대해 실행되지 않습니다. –

1

Inactivity Timeout을 사용할 수 있습니다. 서버는 지정된 시간 동안 메시지를 수신하지 않으면 자동으로 연결을 종료합니다.

2

ReliableSession을 사용하는 경우 Brijesh가 가리키는대로 InactivityTimeout을 사용할 수 있습니다. 그렇지 않으면 기본 WCF 시간 제한을 활용해야합니다.

각 시간 초과가 구현되는 방법에 대한 설명은 Timeouts WCF Services을 참조하십시오.

타임 아웃은 개발자에게 종종 귀찮은 일이지만, 이것이 정확히 목적입니다.

관련 문제