Пользовательский WSDL для веб-службы ASMX - PullRequest
4 голосов
/ 29 января 2011

Можно ли использовать пользовательский WSDL с .NET WebService? Я хотел бы использовать собственный WSDL с моим .NET WebService вместо того, который был сгенерирован .NET как часть моего WebService.

Ответы [ 2 ]

8 голосов
/ 29 января 2011

На самом деле есть способ сделать это: вы можете создать свой собственный WSDL (т.е. удалить методы, которые вы не хотите публиковать), а затем сделать его доступным в выделенном месте, что позволяет пользователям связываться с ним как обычно.

Чтобы пользователи не могли просто получить WSDL по умолчанию (foo.asmx?wsdl), необходимо переключить переключатель в файле web.config вашего веб-сервиса:

  <webServices>
    <protocols>
      <remove name="Documentation"/>
    </protocols>
  </webServices>

Из соответствующий раздел MSDN :

Примечание. При удалении протокола документации также отключается генерация файлов WSDL для любых веб-служб XML в веб-приложении.Это не позволяет клиентам создавать прокси-класс, если для них не создан и не создан специальный файл WSDL.

0 голосов
/ 29 января 2011

Я полагаю, что вам нужно заменить файл, сгенерированный .NET, когда на ваш сервис нажата строка запроса "? Wsdl".

Нет, прямого способа сделать это нет. Вместо этого просто разместите ваш .wsdl на веб-сайте и попросите потребителей вашего сервиса получить его оттуда. Нет стандартного высказывания о том, что «? Wsdl» - единственный способ получить файл WSDL.

...