Как программно настроить службы данных WCF?
Как бы вы свободно сконфигурировали следующие сервисы данных WCF в 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>
1 ответ
Решение
Следующее настроит эквивалент DataServiceHost
слушая на конечной точке 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;
}