Question

How would you configure the following WCF Data Services fluently in C#?

<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>
Was it helpful?

Solution

The following will configure an equivalent DataServiceHost, listening on endpoint uri.

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;
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top