2011-10-25 3 views
3

어떻게하면 C#에서 다음 WCF Data Services를 유창하게 구성 할 수 있습니까?프로그래밍 방식으로 WCF 데이터 서비스를 구성하는 방법은 무엇입니까?

<configuration> 

    ... 

    <system.serviceModel> 
    <services> 
     <service name="Foo.WebServices.FooService"> 
     <endpoint address="http://localhost:8081/PhoenixData" 
        binding="webHttpBinding" 
        bindingConfiguration="" 
        contract="System.Data.Services.IRequestHandler" /> 
     </service> 
    </services> 

    <behaviors> 
     <serviceBehaviors> 
     <behavior name=""> 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 

    </system.serviceModel> 
</configuration> 

답변

5

다음은 엔드 포인트 uri에서 수신, 이에 상응하는 DataServiceHost을 구성합니다.

DataServiceHost CreateServiceHost(Uri uri) 
{ 
    var host = new DataServiceHost(typeof(FooDataService), new Uri[] { }); 

    // these may need to be added if they don't already exist. 
    host.Description.Behaviors.Find<ServiceMetadataBehavior>().HttpGetEnabled = true; 
    host.Description.Behaviors.Find<ServiceDebugBehavior>().IncludeExceptionDetailInFaults = true; 

    host.AddServiceEndpoint(
     new ServiceEndpoint(ContractDescription.GetContract(typeof(FooDataService))) 
      { 
       Name = "default", 
       Address = new EndpointAddress(uri), 
       Contract = ContractDescription.GetContract(typeof(IRequestHandler)), 
       Binding = new WebHttpBinding() 
      }); 

    return host; 
}