문제

WCF가 휴식을 취하기 위해 Web.Config에 넣어야하는 최소한은 무엇입니까? [webget]에 내 방법에 주석을 달았지만 메시지를받지 못하고 있습니다.

도움이 되었습니까?

해결책

*.SVC 파일의 ServiceHost 지시문에 다음을 추가 할 수 있다는 것을 알게되었으며 WebHttpBinding 및 WebHTTPBehavior를 자동으로 설정합니다.

Factory="System.ServiceModel.Activation.WebServiceHostFactory"

네임 스페이스는 웹의 다른 곳에서 언급 된 것과 약간 다릅니다 (예 : 이 MSDN 기사).

이 작업을 수행 한 후 Web.config에서 전체 섹션을 삭제할 수 있었으며 모든 것이 여전히 작동했습니다!

다른 팁

엔드 포인트에서 webhttpbinding을 사용하는지 확인하십시오 (httpbinding 또는 wshttpbinding이 아님). 여기 내 엔드 포인트 구성이 있습니다 ...

    <endpoint address="" binding="webHttpBinding" bindingConfiguration=""
      contract="WcfCore.ICustomer">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>

서비스 호스트를위한 주소가 있는지 확인해야합니다.

<services>
      <service name="SomeLib.SomeService">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8080/somebase"/>
          </baseAddresses>
        </host>
<!-- And one EndPoint **basicHttpBinding** WILL WORK !!! -->

        <endpoint 
                   address="basic"
                   binding="basicHttpBinding"
                   contract="SomeLib.SomeContract"/>
</service>
</services>

이제, 예를 들어 콘솔 앱을 통해 자체 호스팅을하는 경우 : 호스트를 통해 호스트를 호출 할 수 있습니다.

WebChannelFactory<IServiceContract> factory =
        new WebChannelFactory<IServiceContract>(
            new Uri("http://localhost:8080/somebase"));

콘솔 앱이 시작되면 주소가 자체 호스팅 된 경우에도 주소를 탐색 할 수 있으며 웹젯 URI 템플릿을 기반으로 동작을 호출 할 수 있어야합니다.

이 최소 구성을 통해 셀프 호스트를 통해 WCF를 편안하게 호출 할 수 있습니다. IIS에서 호스팅하는 경우 SVC 파일이 사용자 정의 호스트를 대체하는 것을 제외하고는 본질적으로 동일한 방식으로 작동합니다.

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