posted by tornado 2008. 8. 25. 20:05
상황  ------------

닷넷에서 자바 웹서비스를 호출할 경우 Web Connection 이 끊김.
자바측 WebService 는 총 4대의 서버이고 L4 로 로드밸런싱 되고 있음.

자바측 Keep-alive = false 이고
닷넷측 Keep-alive = true 이다.



using(wsjavaweb a = new wsjavaweb()){  <-- 1. 여기서는 연결됨(1번서버 바라봄)
    string result = a.methodCall();  <-- 2. 여기서 연결이 끊김.(L4 에서 다른 서버를 할당함)
}

자바측 웹로직 서버의 Keep-alive 가 false 이기 때문에 1번은 연결이 잘 됨.
그러나 2번 호출시 L4 에서 다른 서버로 연결을 보낼 경우 1번에서 연결된
WebRequest 연결을 사용할 수 없음.

해결 ------------

닷넷 측 웹서비스에서 Reference.cs 파일에 메소드를 오버라이드 하여 문제가 해결됨.

protected override WebRequest GetWebRequest(Uri uri)
{
    HttpWebRequest webRequest = (HttpWebRequest) base.GetWebRequest(uri);
    webRequest.KeepAlive = false;
    return webRequest;
}