URL-адрес WSDL для службы WCF (basicHttpBinding), размещенный внутри службы Windows

Я размещаю службу WCF в службе Windows на одном из наших серверов. После того, как он работал в basicHttpBinding и создавал тестовый клиент в .NET (который, наконец, работал), я пошел и попытался получить доступ к нему с PHP с использованием класса SoapClient. Конечным потребителем будет PHP-сайт, поэтому мне нужно сделать его потребляемым в PHP.

Я получил тупик, когда мне пришлось вводить URL-адрес WSDL в конструкторе класса SoapClient в PHP-коде. Где WSDL? Все, что у меня есть:

http://172.27.7.123:8000/WordService и http://172.27.7.123:8000/WordService/mex

Ни один из них не выставляет WSDL.

Будучи новичком в WCF, я мог бы попросить тупое дело (или у меня могло быть неправильное предположение где-то). Пожалуйста, будьте осторожны: D

И нет, http://172.27.7.123:8000/WordService?wsdl не показывает ничего, кроме http://172.27.7.123:8000/WordService 🙁

Я вынужден принять его в IIS? Я вынужден использовать обычный WebService?

Это может помочь:

http://msdn.microsoft.com/en-us/library/ms734765.aspx

В двух словах вам необходимо настроить конечные точки и поведение службы. Вот минимальный пример:

<system.serviceModel> <services> <service <!-- Namespace.ServiceClass implementation --> name="WcfService1.Service1" <!-- User behaviour defined below --> behaviorConfiguration="SimpleServiceBehaviour"> <endpoint address="" binding="basicHttpBinding" <!-- Namespace.Interface that defines our service contract --> contract="WcfService1.IService1"/> </service> </services> <behaviors> <serviceBehaviors> <behavior name="SimpleServiceBehaviour"> <serviceMetadata <!-- We allow HTTP GET --> httpGetEnabled="true" <!-- Conform to WS-Policy 1.5 when generating metadata --> policyVersion="Policy15"/> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel> 

Не забывайте удалять комментарии XML, поскольку они недействительны там, где они есть.

См. Эту ссылку:

Предоставление службы WCF с несколькими связями и конечными точками

 В отличие от предыдущих служб ASMX, WSDL (язык определения веб-сервисов) для WCF 
 услуги не генерируются автоматически.  Предыдущее изображение даже сообщает нам, что 
 «Публикация метаданных для этой службы в настоящее время отключена».  
 Это связано с тем, что мы не настроили наш сервис, чтобы показывать какие-либо метаданные об этом. 
  Чтобы открыть WSDL для службы, нам нужно настроить наш сервис для предоставления метаинформации.  Заметка:  
 MexHttpBinding также используется для обмена метаинформацией об услуге.  В то время как 
 имя не очень «gump», это означает Meta Data Exchange.