2014-01-21 2 views
2

IIS를 사용하는 대신 Windows 서비스의 WCF 서비스 자체 호스팅에 제한 사항 (성능, 메모리, 스레딩 등)이 있습니까? 이를 수행하는 방법을 보여주는 수많은 기사가 있지만 이것을해야하는 경우는 거의 논의되지 않습니다. 필자가 구축 한 다소 복잡한 앱을 사용하려면 피어 투 피어 통신을위한 WCF 서비스를 자체 호스팅해야합니다. 글로벌 사용자가 피해야하는 "마스터"서비스에 대해 서버에서 동일한 자체 호스팅 패턴을 사용하는 것은 매우 유혹적입니다.자체 호스팅 WCF 서비스는 어떤 방식 으로든 제한됩니까?

+1

모든 이론적 인 질문은 http://meta.stackoverflow.com/에서 추가해야하며 stackoverflow는 코딩 \ 논리 관련 문제를 의미합니다 – dreamweiver

+3

meta.stackoverflow.com은 프로그래밍에 대한 이론적 인 질문이 아닌 기본 사이트에 대한 질문입니다 . –

+2

[이 MSDN 페이지] (http://msdn.microsoft.com/en-us/library/bb332338.aspx)를 읽고 WCF 호스팅을 IIS와 비교하여 각각에 장단점을 보여줄 수 있습니다. –

답변

0

저는 WCF 용 자체 호스팅을 사용하는 두 개의 시스템을 설계하는 데 도움을 주었으며 매우 잘 작동합니다 (NetTCP를 기본 통신 프로토콜로 사용함). 그것은 내가 그것을 할 수 있는지를 알기위한 대부분의 개념 증명이었고, 고려해야 할 성능적인 것들이 있지만 실제로 잘 작동되었다. 첫째, 서비스의 수에 따라 메모리 사용 공간이 약간 커질 수 있습니다. 즉, 제가 설계 한 아키텍처는 ~ 40 개의 개별 서비스를 제공하지만, 지원 팀은 계속해서 새로운 아키텍처를 추가하고 계속해서 92 단계로 진행했습니다. 초기화 프로세스를 스레드하지 않는 한 초기화 프로세스를 시작하지 않는 한 느린 시작 시간이 생기기 시작합니다. 각 프로세스를 자체 AppDomain에서 여는 것부터 시작합니다. 성능이 IIS 호스팅보다 좋든 나쁘 든간에 전반적으로는 잘 작동합니다. 백그라운드 스레딩 및 AppDomains에 대한 적절한 지식을 프로세스의 일부로 준비 할 수 있습니다. 고려해야 할

4

주요 포인트는

  • Port Sharing : IIS가 당신에게 무료로 포트 공유를 제공합니다. 자체 호스팅 환경에서 포트 공유를 사용하려면 직접 처리해야합니다.
  • 가용성 제한 : 응용 프로그램이 실행 중일 때만 서비스에 연결할 수 있습니다.
  • 제한된 기능 : 자체 호스팅 응용 프로그램은 고 가용성, 관리 용이성, 견고성, 복구 가능성, 버전 관리 및 배포 시나리오에 대한 지원이 제한적입니다. 적어도 기본 WCF는 이러한 기능을 제공하지 않으므로 자체 호스팅 시나리오에서는 이러한 기능을 직접 구현해야합니다. 예를 들어 IIS에는 기본적으로 이러한 기능 중 일부가 함께 제공됩니다.

고려해야 할 트레이드 오프에 대한 개요는 the MSDN docs을보십시오.

관련 문제