2015-01-20 2 views
1

IIS에서 사용자 지정 ServiceHost로 내 WCF 서비스를 호스팅하려고합니다. MSDN에서 다음과 같은 몇 가지 기사를 찾았습니다 : Custom Service Host. 여기에, 내 서비스 SVC 파일에 뭔가를 추가해야하는데, 하나도 없으며 Visual Studio에 추가 할 수도 없습니다. 그런 다음이 기사를 발견했습니다 : Configuration-Based Activation in IIS and WAS. 이 말은IIS의 WCF 사용자 지정 ServiceHost

"구성 기반 활성화 기능은 .svc 파일을 필요로하지 않으므로 관련된 오버 헤드를 제거합니다."

내 Web.config에 serviceHostingEnvironment 항목을 만들 수 있습니다. (어느 쪽도 가지고 있지 않지만, 내 system.serviceModel 구성을 포함하고 있기 때문에 App.config가 동등한 것 같습니다). 그러나 서비스 활성화를 위해 relativeAddress을 지정해야합니다.

는 "relativeAddress 속성은 <sub-directory>/service.svc 또는 ~/<sub-directory/service.svc와 같은 상대 주소로 설정해야합니다."

그래서 내 SVC 파일을 가리켜 야? 나는 약간 혼란 스럽다. 나를 올바른 방향으로 인도 할 수 있겠 니?

+0

현재 프로젝트 유형은 무엇입니까 (Windows 서비스입니까?). 하지만 당신은 IIS에서 그 서비스를 호스팅하고 싶습니까? – khlr

+0

WCF 서비스 라이브러리 프로젝트가 있는데 IIS에서 호스트 할 수 있습니다. 사용자 정의 ServiHostFactory를 – Peter

답변

1

MSDN의 설명서는 다소 혼란 스럽습니다. 다음은 web.confi/app.config에 입력해야하는 구성입니다.

<serviceHostingEnvironment> 
    <serviceActivations> 
    <add relativeAddress="MyNonExistingServiceSVC.svc" service="MyService" factory=”MyServiceHostFactory”/> 
    </serviceActivations> 
</serviceHostingEnvironment> 

여기서 상대 주소는 임의의 더미 이름입니다. 이 이름은 서비스 메타 데이터를 탐색하는 데 사용됩니다. 이 이름은 원하는 어떤 것도 될 수 있으며 디스크에 동일한 실제 파일이 존재하지 않아도됩니다. .SVC 확장자를 가진 이름이 필요합니다. 서비스 메타 데이터에 액세스하는 동안 귀하의 URL은 다음과 같습니다.

http://myserver/myservice/MyNonExistingServiceSVC.svc 
+0

에 연결하려고합니다. 내 ServiceHost 팩토리가 호출되지 않은 것 같습니다. – Peter

+0

서비스 팩토리 이름이 올바른지 확인하십시오 . 서비스가 아닌 다른 어셈블리에 있으면 어셈블리 이름과 함께 유형을 사용하십시오. –