Я использую .NET 4 WCF для предоставления следующего полного веб-сервиса REST
[OperationContract]
[WebGet]
void Test();
Поскольку это программа, ориентированная на разработчиков, я хочу поддержать разработчиков HTTP-запросов с полным REST, а также разработчиков, которым нравится использовать WSDL. Мой подход состоит в том, чтобы объявить службу дважды , чтобы предоставить как традиционный WSDL, так и конечную точку REST:
Web.config
<serviceHostingEnvironment aspNetCompatibilityEnabled="True" multipleSiteBindingsEnabled="true" >
<serviceActivations >
<add relativeAddress ="~/KeyService.svc" service="SecretDistroMVC3.Services.KeyService3"/>
</serviceActivations>
</serviceHostingEnvironment>
Global.asax
void Application_Start(object sender, EventArgs e)
{
// The following enables the WCF REST endpoint
//ASP.NET routing integration feature requires ASP.NET compatibility. Please see
// 'http://msdn.microsoft.com/en-us/library/ms731336.aspx
RouteTable.Routes.Add(new ServiceRoute("KeyService3", new WebServiceHostFactory(), typeof(KeyService3)));
Вопрос
Поскольку я не люблю объявлять службу в двух местах, как мне настроить обе конечные точки в конфигурации или обе конечные точки в Application_Start
?
Примеры
Конечная точка справки REST WCF
образец WCF WSDL