2012-06-11 2 views
0

wsdl을 가져 왔습니다. 나는 웹 서비스의 메소드를 가진 클래스를 가지고있다. 클래스는 SoapHttpClientProtocol에서 파생됩니다.SoapHttpClientProtocol, 메서드는 매번 새 연결을 호출합니까?

모든 메소드 호출이 새로운 연결을 열었거나 연결이 재사용 될지 누가 알 수 있습니까?

재사용하지 않으면 어떻게 재사용 할 수 있습니까?

그리고 마지막 질문 인 클라이언트를 WCF로 만들 수 있습니까? 그리고 wcd를 가져 오는 방법 ?

감사합니다.

답변

0

WCF 서비스로 만들려면 단순히 메서드를 꾸미는 대신 인터페이스를 만들어야합니다. 이를 프로젝트로 가져 오려면 동일한 방식으로 작동합니다.

2.0 서비스에 대해서는 잘 모르겠지만 WCF의 경우 서비스 클라이언트를 호출하는 방법에 따라 다릅니다. 내가 아는 한 일반적으로 연결은 닫을 때까지 또는 범위를 잃을 때까지 (일관성없이) 열려 있습니다. 따라서 일단 WCF 서비스라면 클라이언트를 인스턴스화하고 모든 호출을 한 다음 닫습니다. 최선의 방법은 try/catch로 랩핑하고 catch 블록을 사용하여 클라이언트를 차단하는 것입니다. 내 경험에 의하면, 서비스가 느슨하게 결합되어 있고 방대한 양의 데이터를 파이프하지 않으려는 경우 반복되는 연결은 큰 문제가되지 않습니다.

SQL 연결을 여는 것처럼 서비스가 수행되고 있다면 클라이언트의 연결 상태에 관계없이 모든 서비스 호출과 함께 SQL 연결이 생성된다는 것을 명심하십시오. 이것은 당신이 작업을 완료하고 클라이언트와 서비스 간의 테니스 일치를 저장하기 위해 데이터 집합이나 DTO의 일부 형식을 반환하기 위해 서비스 내부를 SQL 연결로 연결하려는 더러운 상황 중 하나입니다.

관련 문제