문제

우리는 프로토콜을 수정하십시오. 클라이언트에서 서버로 통신하기 위해 WCF를 사용하여 클라이언트와 서버를 모두 제어했지만 외부 TCP/IP 기반 시스템을 사용하지 않았습니다. WCF에서 가능합니까? 그렇다면 커뮤니티가 제가 시작하고 올바른 방향으로 직면 할 수있는 링크를 제공 할 수 있습니까?

불행히도 우리는 여전히 초기 초기 계획 단계에 있기 때문에 위에 제공되는 내용이 훨씬 더 많지 않습니다. 우리가 아는 것은 시스템이 TCP/IP를 통해 시스템과 통신 할 외부 공급 업체가 있다는 것입니다. 우리는 이것을 학습 기회로 사용하고 WCF를 배우고 싶습니다.

도움이 되었습니까?

해결책

나는 그것이 가능하지 않다고 생각합니다. 적어도 TCP와 수정 태그를 허용하는 것을 제외하고는 다른 쪽 끝의 통신 프로토콜을 알지 못하기 때문에 적어도 설정하기가 쉽지 않습니다.

WCF 애플리케이션 내에있는 이유는 무엇입니까? 그것은 더 간단한 방식으로 트릭을 수행해야합니다.

다른 팁

가능한? 아마도 그렇습니다. 그러나 그것은 약간의 일을 할 것입니다.

우선, TCP/IP 기반 프로토콜의 세부 사항을 처리하는 맞춤형 WCF 전송 채널을 작성해야합니다 (즉, 모든 소켓 처리 코드를 작성하고 WCF 채널 모델에 연결해야합니다). 이는 WCF의 TCP 채널이 이러한 종류의 작업을위한 것이 아니지만 비교적 독점적이고 문서화되지 않은 와이어 프로토콜을 사용하기 때문입니다.

나는 그것이 얼마나 복잡한 지 말할만큼 Fix에 익숙하지 않지만 해당 영역에서 WCF 채널과 문서를 작성할 때 일부 gotchas가 있습니다.

처리해야 할 두 번째 부분은 메시지 인코딩입니다. WCF에게는 모든 메시지가 XML입니다. 즉, 메시지가 WCF 스택으로 전달되면 런타임에 XML Infoset처럼 보일 것입니다. Fix는 XML (AFAIK)을 사용하지 않으므로 약간 적응해야합니다.

주변에 갈 수있는 두 가지 방법이 있습니다.

  1. 쉬운 방법 : 서버/클라이언트가 데이터에 대한 특정 인터페이스와 형식을 사용한다고 가정하고 채널이 해당 형식으로/수정 메시지를/에서 번역하는 모든 노력을 기울이라고 가정합니다. 가장 간단한 예는 WCF 코드가 하나의 메소드를 사용하여 간단한 서비스 계약을 사용한 다음 해당 계약의 데이터 계약 시리얼 라이저를 만족시키는 XML 형식으로 수정 메시지 문자열을 캡슐화하는 것입니다. 그러나 사용자 코드는 여전히 수정 형식 디코딩을 나중에 다루어야합니다.

  2. 맞춤형 WCF MessageEncoder에서 모든 노력을 기울이십시오. 조금 더 복잡하지만 잠재적으로 더 깨끗하고 재사용 가능합니다 (그리고 더 나은 스트리밍 등과 같은 복잡한 일을 할 수 있습니다).

그러나 큰 문제는 이것이 그만한 가치가 있는지 여부입니다. 이를 위해 WCF를 사용하고 싶은 추론은 무엇입니까? 프로그래밍 모델 활용? 나는 이것이 중요한 고려 사항이라고 생각하지만 WCF가 제공하는 추상화는 가격이 책정된다는 것을 명심하십시오. 특히, 실시간 요구 사항이 매우 많으면 WCF의 일부 측면이 문제가 될 수 있습니다. 이는보고있는 재무 환경에서 일반적이라는 것을 이해합니다.

이 경우 WCF를 건너 뛰고 금속에 조금 더 가깝게 달라 붙어 더 잘 제공되는 것이 좋습니다. 어쨌든 소켓 작업을 수행해야하므로 여기에서 고려해야 할 사항입니다.

도움이 되었기를 바랍니다 :)

생각한다 그래서. 나는 내가 그 시스템을 가지고있다 거의 거의 정확히 그 일을해야했던 일 (인터넷에서 HTTP에 대한 WCF). 서버 제공 업체는 생각을 허용하고 싶지 않은 것처럼 보였으므로 해당 목적에 대한 올바른 권한이 필요합니다.

UP Shot : 나는 왜 그런지 모르겠다.

실제로는 아닙니다 - MS는 TCP/IP 연결 핸들러가 비 WCF 서비스와 대화하기 위해 만들지 않았으며 웹 서비스를 작성하기 위해 웹 서비스를 작성한다고 가정했습니다.

이것은 논의됩니다 여기에.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top