Как использовать файл WSDL для создания службы WCF (не делать вызов)
У меня есть старый файл WSDL и я хочу создать сервер на основе этого файла WSDL.
WSDL генерируется из ASMX (я полагаю, но я не уверен).
Как я могу этого достичь ?
оригинальный вопрос, где ОП думал, что ему нужно создать клиент на основе WSDL.
5 ответов:
используя svcutil, вы можете создавать интерфейсы и классы (контракты данных) из WSDL.
svcutil your.wsdl (or svcutil your.wsdl /l:vb if you want Visual Basic)
это создаст файл с именем " ваш.cs "в C# (или" ваш.vb " in VB.NET) который содержит все необходимые элементы.
теперь вам нужно создать класс "MyService", который будет реализовывать интерфейс службы (IServiceInterface) - или несколько интерфейсов службы - и это ваш экземпляр сервера.
теперь класс сам по себе еще не очень помогает - вам нужно будет разместить службу где-то. Вам нужно либо создать свой собственный экземпляр ServiceHost, который размещает службу, настроить конечные точки и т. д., Либо вы можете разместить свою службу внутри IIS.
есть хорошие ресурсы там, если вы знаете, что нужно искать. Попробуйте "сначала контракт" и WCF. или "WSDL First" и WCF.
здесь:
- основной обзор WSDL-первая разработка с WCF и SvcUtil.exe.
- WSCF-бесплатная надстройка для Visual Studio включение контракта-первый дизайн с WCF
- статья о том, как создать "WCF-Friendly" WSDL
используйте svcutil.exe с помощью
/sc
переключитесь для создания контрактов WCF. Это создаст файл кода, который можно добавить в проект. Он будет содержать все интерфейсы и типы данных, необходимые для создания службы. Измените местоположение вывода с помощью/o
переключатель, или вы можете найти файл в папке, где вы запустили svcutil.исполняемый. По умолчанию используется язык C#, но я думаю (я никогда не пробовал) вы должны быть в состоянии изменить это с помощью/l:vb
.svcutil /sc "WSDL file path"
если ваш WSDL имеет ли какие-либо поддерживающие xsd-файлы передавать их в качестве аргументов после WSDL.
svcutil /sc "WSDL file path" "XSD 1 file path" "XSD 2 file path" ... "XSD n file path"
затем создайте новый класс, который является вашим сервисом, и реализуйте только что созданный интерфейс контракта.
вы можете использовать svcutil.exe для создания клиентского кода. Это будет включать определение контракта на обслуживание и любые требуемые контракты на передачу данных и контракты на устранение неисправностей.
затем просто удалите клиентский код: классы, реализующие сервисные контракты. Затем вам нужно будет реализовать их самостоятельно, в вашем сервисе.