Я пытаюсь разместить службу WCF в IIS7, которая работает как с Silverlight, так и с запросами GET. У меня работает конечная точка Silverlight, но я не могу понять, как создать дополнительную конечную точку в той же службе, которая будет обрабатывать запросы GET от клиентов AJAX.
У меня есть вторая служба, предназначенная только для запросов GET, и она работает нормально, поэтому мой вопрос не в том, как настроить конечную точку для запросов GET, а в том, как настроить службу, имеющую две конечные точки, одну для запросов Silverlight и один для запросов GET.
Мой IIS web.config имеет:
<system.serviceModel>
<services>
<service name="MyAssembly.MyService">
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<endpoint address="http://localhost/provisioning.svc" binding="basicHttpBinding" contract="MyAssembly.IMyService" />
<endpoint address="http://localhost/provisioningajax.svc" binding="webHttpBinding" contract="MyAssembly.IMyService" />
</service>
</services>
<system.serviceModel>
В файлах provisioning.svc и provisioningajax.svc содержится одно и то же:
<% @ServiceHost Service="MyAssembly.MyService" %>
Конечная точка provisioning.svc работает с моими клиентами Silverlight нормально, но я не могу заставить работать с provisioningajax.svc. При попытке получить к нему доступ я получаю сообщение об ошибке выполнения и следующее сообщение об ошибке в журнале событий приложений.
Информация об исключении:
Тип исключения: InvalidOperationException
Сообщение об исключении: ChannelDispatcher в 'http://localhost/provisioning.svc' с контрактом (ами) "MyAssembly.IMyService" "не может открыть свой IChannelListener.