Я пытаюсь создать службу C # в .NET 3.5, которая поддерживает как SOAP - и показывает WSDL -, так и REST.
Службу SOAP и генерацию WSDL было достаточно просто сделать с использованием классов ServiceHost
и BasicHttpBinding
. Работал, и клиент был счастлив.
Поскольку SOAP вызывает все используемые простые параметры, разработчики клиента запросили REST-интерфейс для некоторых команд. Поэтому я изменил класс ServiceHost на WebServiceHost
, добавил необходимые атрибуты WebInvoke
и WebGet
, добавил класс WebHttpBinding
, и bingo - REST и SOAP работали из одной службы. Круто, измените один интерфейс, и REST и SOAP получили новое.
Но одна проблема - WSDL больше не генерируется. Я не смог перейти к http://server/service?wsdl и получить файл WSDL. Проверка документов MSDN, это похоже на поведение по умолчанию WebServiceHost
.
Вопрос: можно ли переопределить это поведение, чтобы можно было получить WSDL? Не должен иметь тот же URL-адрес, что и раньше - он может измениться - но мне просто нужно иметь какой-то URL-адрес в службе, чтобы получить WSDL для тех разработчиков SOAP.