2009-05-06 4 views
5

누군가가 서버 측에서 클라이언트에게 이벤트를 가져 오기 위해이 기술을 사용했는지 궁금합니다. 나는 유닉스 기반 서버를 사용하는 환경을 가지고 있으므로 WCF 이중/콜백 등을 사용할 수 없다.WCF 클라이언트에서 자체 호스팅? 좋거나 나쁨

내 클라이언트가 두꺼운 .net 응용 프로그램을 실행하는 Windows 상자라는 생각은 WCF 자체 호스트를 회전시키고 해당 세션에 대한 서버의 자체 호스트 URL 그것들은 매우 단순한 계약을 맺었을 것이고 서버는 업데이트가 클라이언트 서버를 호출 할 때 업데이트가 서버에서 기다리고 있다는 것을 알려줄 것이고 클라이언트는 클라이언트가 그걸 기다릴 것이라고 말합니다.

내 머리를 WCF에 가져 가면 이것이 좋은 방법인지 확실하지 않으므로 걱정해야 할 보안 관련 사항이 있습니까? 플랫폼간에 작동하도록 Duplex 호출을 얻는 방법이 있습니까?

소켓을 사용하기 전에 비슷한 작업을 수행했거나 교차 플랫폼 메시지 대기열을 사용하는 것이 더 좋은 방법입니다. 소리 최소한

감사

76mel

답변

1

, 그것은 내가 * 괜찬아 서버가 그럼 그냥 웹을 만들 수 있기 때문에 당신은뿐만 아니라 IIS에서 호스팅 할 수 있습니다 추측에는 요하지만, 일을한다고 같은 전화, 알았지? 자신을 호스팅하는 것이 잘 될지 모르지만 구성해야 할 목에 통증이 조금 더있을 수 있습니다.

결정할 때마다 여기에서 업데이트하십시오. 흥미로운 도전 인 것처럼 들리므로 우리 중 일부는 어떻게 만들어 지는지보고 싶습니다.

+0

예 저는 IIS 중간 계층을 좋은 아이디어로 생각했습니다. 내 생각에 우리는 10,000 명의 클라이언트와 1/3의 동시 접속을 가지고 있기 때문에 IIS 상자에서 약간의 비용이들 것입니다. 개념 증명을하고 계속 게시 할 예정이지만, TCP 청취자를 회전 시키는데 좋은 일이 일반적인 관행이라면 누구나 더 많은 생각, 통찰력 및 염려가 있다면 감사 할 것입니다. WCF가 아닌 이유 서비스. – 76mel

+0

좋아, 나는 이것을 모두 시도 했어. 나는 이것이 방화벽 내부에있는 프로젝트에 아주 잘 작동 할 것이라고 생각한다. 당신은 방화벽을 스팬 싶으면 당신이 낮은 수준에서 연결할 때 버스/대기열을 사용하는 것이 더 좋은 방법이라고 생각합니다. 내가 여기서 한 것은 Unix 서버가 알고있는 간단한 이벤트 계약을 갖는 것이 었습니다. 먼저 WCF 서비스를 Windows 서비스 내부에서 실행하여 먼저 해당 끝점이있는 서버에 등록합니다. 그러면 서버는 내 끝점에서 이벤트를 실행할 수 있으며 서버에서 데이터를 가져 와서 이에 응답 할 수 있습니다. – 76mel

+0

우수! 멋진 블로그 기사를 만드는 것처럼 들립니다. –

1

우리는 비슷한 시나리오에 대해 자체 호스팅 WCF를 사용합니다. 또한 클라이언트 응용 프로그램이 IIS에 종속되지 않도록하여 라이센스 및 배포 번거 로움을 방지했습니다.

WCF가 필요한 것에 지나치게 비싸지 만 상당히 잘 작동합니다. HTTP를 사용하기 때문에 Http.sys에 직접 작성된 간단한 웹 서비스를 만들 수 있습니다.

+0

http.sys의 간단한 웹 서비스가 WCF를 사용하는 것보다 쓰기 및 유지 관리가 더 간단합니까? 나는 그것을 의심한다. –

+0

http.sys에서 웹 서비스 구현을 시도하지 않았으므로 확실히 말할 수는 없습니다. 그러나 나는 WCF와 함께 잠시 일해 왔으며, 내가 원하는 것보다 훨씬 유연성이 떨어지는 것을 발견했다. – dthrasher

+0

cassini 웹 서버를 사용해 보셨습니까? – 76mel

1

유사한 결과를 얻는 또 다른 방법은 클라이언트 폴링을하는 것입니다. 이는 요구 사항이 무엇인지에 따라 크게 좌우됩니다. 거의 실시간 업데이트가 필요한 경우이 작업을 수행 할 수있는 많은 설문 조사를 수행해야하므로 분명히 작동하지 않지만 클라이언트에 대한 업데이트를받는 데 1 분 또는 그 이상의 시간이 걸리는 경우 폴링이 필요할 수 있습니다. 대답.

관련 문제