아하... ^^ 그렇다면 문제가 좀 쉬워지는데요.
말씀하신 데로라면 그런 현상이 발생할 수 있습니다.
또한, 해결방법도 이미 알고 계신대로 하시면 될 것 같습니다.
만약, Callback 시간이 10초 이상 걸릴 일이 없다면, 서버측의 config 에서 sendTimeout 을 줄여주시면 보다 더 "비정상 종료된 클라이언트" 때문에 지연되는 시간을 줄일 수 있습니다. (예를 들어, Callback 이 Oneway 메서드라면 5초 정도로 줄여도 충분할 수 있습니다.)
또는, 언급하신 것처럼 "inactivityTimeout" 값을 줄여주시면 평소에 WCF 서비스가 클라이언트로 heart-beat을 날리게 되는데 지정된 시간 동안 연결확인이 안되면 스스로 연결을 끊어버리는 역할을 합니다. 대신에 inactivityTimeout 값을 너무 줄이시면 안됩니다. 예를 들어, WCF 서비스와 연결되어 있는 클라이언트 측의 프로세스가 바빠서 heart-beat에 대한 처리를 못하게 되는 경우에도 강제로 연결이 끊기게 됩니다.
"A 질문"에서 "최대한 빨리"라고 하셨는데,,, 위에서 설명한 것과 같은 요소들 때문에 해당 업무 성격에 따라 매우 가변적일 수 있습니다. 접속한 클라이언트가 소수이고 가벼운 경우라면 "최대한 빨리"라는 기준으로 inactivityTimeout 값을 1초로 주면 이상적일 수 있습니다. (이렇게 되면 BreakPoint를 걸고 조금의 시간이라도 디버거로 프로세스를 멈춰버리면 연결이 끊길 수 있습니다.)
"최대한 빨리"를 위해서는 적절하게 다양한 환경에서 테스트하셔서 선택하셔야 하고 ... 그 부분에서는 ^^ 임동찬 책임님의 선택입니다.
(
검색해 보니, 승진 소식을 아래에서 찾을 수 있었습니다. ^^
http://www.gjn.kr/news/articleView.html?idxno=3746
김선장 선임님도 책임이 되셨군요. ^^
)