У мене старий файл WSDL і я хочу створити сервер на основі цього файлу WSDL.
WSDL генерується з ASMX (я думаю, але я не впевнений).
Як я можу цього досягти?
оригінальне запитання, де ОП вважала, що йому потрібно створити клієнта на основі WSDL.
У мене старий файл WSDL і я хочу створити сервер на основі цього файлу WSDL.
WSDL генерується з ASMX (я думаю, але я не впевнений).
Як я можу цього досягти?
оригінальне запитання, де ОП вважала, що йому потрібно створити клієнта на основі 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="*"
. Здається, цього потрібно позбутися. Є пояснення з цього коментаря, який дає міркування, але я не читав цього.
Використовуйте 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
І завантажиться належним чином.