2012-02-14 4 views
1

5 개의 wcf 서비스로 응용 프로그램을 만들고 IIS 7.5에서 호스팅했습니다. net.Tcp 포트 (808 *)의 기본 구성을 사용했습니다.IIS 7.5에서 호스팅되는 WCF (net.tcp) 관련 문제

저는 IIS에서 WCF 서비스를 호스팅하는 데 익숙하지 않습니다. (저는 항상 Windows 서비스에서 호스팅됩니다.) 저는 서비스를 (TCP 바인딩을 사용하여) 호출 할 때 서버에서 두 가지 다른 프로세스가 있다는 것을 알았습니다.

하나는 SMSvcHost.exe (실제로 808 포트를 사용하는 서버)이고 다른 하나는 w3wp.exe입니다. 이것은 내가 호출 할 서버의 인스턴스를 처리하는 것으로 생각됩니다.

나는 질문을 많이 그래서 내가 그들을 열거합니다 있습니다

  1. 나는 (TCP 바인딩) WCF 서비스를 호스팅하는 대신 Windows 서비스의 IIS 사용할 수 있습니까?
  2. 내 요청에 대답하기 위해 두 가지 프로세스가 있다는 사실은 내가 CPU에 영향을 미칠 수 있다는 것을 의미합니까?
  3. 가끔 내 서비스가 tcp 바인딩을 사용하여 응답을 중지합니다. 내 고객에게 시간 초과 오류가 발생했지만 http://myServer/Service1.svc으로 가면 mex가 올바르게 응답합니다. 나는이 문제가 오류 연결에 의한 것 같지만 예외 (예외 예외 사용)를 올바르게 던지고 내 클라이언트에서 올바르게 잡으려고합니다. 게다가, 나는 또한 모든 서비스가 (Close 또는 Abort 메서드를 사용하여) 반드시 처분하도록 부분 클래스를 구현하고있다. 서비스가 응답을 멈추었을 때 어떤 일이 일어나는지 알아낼 수있는 방법이 있습니까?
  4. 클라이언트가 요청을 끝낸 후 w3wp.exe 프로세스를 닫지 않아야합니까? 아무도 서비스를 사용하지 않더라도 작업 관리자에 남아 있습니다. 내 요청이 완료된 후 내 엔터티 라이브러리 로깅 파일을 잠그는 이유는 이것이 이유입니다.

답변

0

이상적으로는 IIS로 생각하는 것에 가까운 Windows 정품 인증 서비스 (WAS)에서 호스팅하는 것이 더 좋지만 이상은 아닙니다. 여기에 MSDN 잡지에 대한 좋은 입문 기사가 있습니다 :

http://msdn.microsoft.com/en-us/magazine/cc163357.aspx

관련 문제