У меня есть старый файл WSDL, и я хочу создать сервер на основе этого файла WSDL.
WSDL генерируется из ASMX (я полагаю, но не уверен).
Как я могу этого добиться?
исходный вопрос, где OP думал ему нужно было создать клиента на основе WSDL.
У меня есть старый файл WSDL, и я хочу создать сервер на основе этого файла WSDL.
WSDL генерируется из ASMX (я полагаю, но не уверен).
Как я могу этого добиться?
исходный вопрос, где OP думал ему нужно было создать клиента на основе WSDL.
Используя svcutil, вы можете создавать интерфейсы и классы (контракты данных) из WSDL.
svcutil your.wsdl (or svcutil your.wsdl /l:vb if you want Visual Basic)
Это создаст файл с именем your.cs в C # (или your.vb в VB.NET), который содержит все необходимые элементы.
Теперь вам нужно создать класс MyService, который будет реализовывать интерфейс службы (IServiceInterface) или несколько интерфейсов службы, и это будет ваш экземпляр сервера.
Сам по себе класс еще не помогает - вам нужно где-то разместить службу. Вам нужно либо создать свой собственный экземпляр ServiceHost, на котором размещается служба, настроить конечные точки и т. Д., Либо вы можете разместить свою службу внутри IIS.
Есть хорошие ресурсы, если вы знаете, что искать. Попробуйте «сначала контракт» и WCF. или «Сначала WSDL» и WCF.
Вот подборка:
ReplyAction="*"
. Похоже, от этого нужно избавиться. В этом комментарии есть следы объяснений, которые дают рассуждение, но я его не читал.
- person dan-gph; 06.04.2010
Используйте svcutil.exe с переключателем /sc
для создания контрактов WCF. Это создаст файл кода, который вы можете добавить в свой проект. Он будет содержать все интерфейсы и типы данных, необходимые для создания вашего сервиса. Измените расположение вывода, используя переключатель /o
, или вы можете найти файл в папке, в которой вы запустили svcutil.exe. По умолчанию используется язык 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 для генерации клиентского кода. Это может включать определение контракта на обслуживание и любых требуемых контрактов на данные и контрактов на неисправность.
Затем просто удалите клиентский код: классы, реализующие сервисные контракты. Затем вам нужно будет внедрить их самостоятельно в свои службы.
Используя инструмент «Добавить ссылку на службу» в Visual Studio, вы можете вставить адрес как:
файл: ///path/to/wsdl/file.wsdl
И он загрузится правильно.