문제

우리는 클라이언트에 대한 콜백을 가능하게하기 위해 WSDUALHTTPBINDING을 사용하는 기존 WCF 서비스가 있습니다. 더 나은 성능을 위해 NetTCPBinding으로 옮기는 것을 고려하고 있지만, IIS 호스트 서비스 (현재 우리가 즐기는 "편안한 구역")에서 우리 자신의 Windows 서비스를 호스팅하기 위해 이사하는 데 매우주의를 기울이는 것입니다. 나는 우리가 여전히 IIS 7에서 이것을 호스팅 할 수 있기를 바랐지만 Win2K8은 한동안 현실이 아닐 것입니다.

WCF 서비스를 호스팅하기 위해 자신의 Windows 서비스를 만들 때 어떤 일을해야합니까? Lifetime Management 및 Request Throttling과 같은 것들은 IIS 호스팅으로 무료로 제공되는 기능이므로 IIS가 우리를 위해 노력하는 편리함없이 우리 자신의 서비스를 효과적으로 호스팅 할 수있는 방법을 알고 싶습니다. 감사! :)

도움이 되었습니까?

해결책

당신이 호스트를 사용할 수 없기 때문에 깨달을 몇 가지가 있습니다.

  • 서비스가 충돌하면 기본적으로 다시 시작되지 않습니다 (서비스 속성에서 변경할 수는 있지만)
  • IIS는 응용 프로그램 풀이 너무 커지거나 자라면 응용 프로그램 풀을 재활용합니다. 동일한 종류의 신뢰성을 원한다면 직접해야합니다.
  • 서비스가 실행되거나 기본 서비스 중 하나를 사용하기위한 계정을 만들어야합니다. 서비스를 시스템으로 또는 관리자 계정으로 실행하려는 유혹을 상환합니다. 내장 된 계정 사용 네트워크 서비스를 사용하려는 경우.
  • 현장에서 디버깅하기가 더 어려워집니다.
  • log4net과 같은 오류 로그를 사용하는 것을 고려하십시오

9 개월 전에 고객을 위해 WCF/Windows 서비스 조합을 배포했다고 말했습니다. 그것은 많이 사용되었고 한 번 죽지 않았습니다.

당신은 할 수 있습니다 스로틀을 요청하십시오 Windows 서비스에서는 WCF 구성의 일부입니다. 기본값은 매우 낮으므로이를 늘려야 할 것입니다.

다른 팁

Windows 서비스 응용 프로그램에서 호스팅 (http://msdn.microsoft.com/en-us/library/ms734781.aspx)는 좋은 출발입니다.

Vista에서 서비스를 호스팅 할 수 있다면 Windows Process Activation Service (WAS)의 혜택을받을 수도 있습니다. IIS 프로세스 활성화의 일반화는 HTTP 엔드 포인트 (TCP, Pipe, MSMQ)를 통해 프로세스를 활성화하는 데 사용할 수 있습니다. 호스팅 된 WCF에 대해 자세히 알아 보려면 읽으십시오. http://msdn.microsoft.com/en-us/library/ms733109.aspx. 설치 및 구성 방법을 배우려면 읽었습니다. http://msdn.microsoft.com/en-us/library/ms731053.aspx.

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