Як генерувати посилання на службу лише фізичним файлом wsdl


123

Я створював і використовував веб-сервіси протягом багатьох років і завжди мав можливість використовувати Visual Studio для створення довідки про послуги від клієнта. У мене є служба третьої сторони, з якою мені потрібно працювати, і вони відмовляються відкривати свою безпеку, щоб я міг побачити wsdl і зробити посилання на службу. Це громадська служба, тому я не бачу необхідності в такому рівні безпеки, але це те, що воно є.

Я знаю, що це питання n00b, і мені соромно його задавати, але як мені створити еквівалентну службову довідкову інформацію для свого клієнта, коли все, що мені доступно, - це фізична копія wsdl, який клієнт мені надіслав електронною поштою? Web.config змінюється, рівень об'єкта над даними SOAP і т. Д. Так само, як і в автоматизованій довідці про службу, я просто хочу відкрити підключення до сервісу і почати використовувати його з визначеними об'єктами.

Наскільки я можу сказати, стороннє обслуговування не є WCF, але це SOAP. Я використовую VS 2010 btw. Заздалегідь дякую, Кен


Відповіді:


180

Це може бути найпростіший метод

  • Клацніть правою кнопкою миші на проект та виберіть "Додати службну довідку ..."
  • У полі Адреса: введіть фізичний шлях (C: \ test \ project ....) завантаженого / модифікованого wsdl.
  • Натисніть Go

11
Якщо ви використовуєте "Копіювати як шлях", зніміть цитати.
О. Джонс

Під час збереження wsdl для передачі комусь іншому "перегляд джерела" wsdl з веб-сервісу в chrome дав мені робочий wsdl, тоді як IE11 цього не зробив. YMMV.
archangel76

68

Є два шляхи для цього. Ви можете використовувати IDE для створення WSDL, або це можна зробити за допомогою командного рядка.

1. Щоб створити його за допомогою IDE:

На панелі дослідників рішень клацніть правою кнопкою миші проект, до якого ви хочете додати Сервіс:

введіть тут опис зображення

Потім ви можете ввести шлях до вашої служби WSDL і натиснути go:

введіть тут опис зображення

2. Щоб створити його за допомогою командного рядка:

Відкрийте командний рядок VS 2010 (Програми -> Visual Studio 2010 -> Інструменти Visual Studio)
Потім виконайте:

WSDL /verbose C:\path\to\wsdl

Потім WSDL.exe виведе .cs файл для вашого споживання.

Якщо у вас є інші залежності, які ви отримали з файлом, наприклад xsd, додайте їх до списку аргументів:

WSDL /verbose C:\path\to\wsdl C:\path\to\some\xsd C:\path\to\some\xsd

Якщо вам потрібен вихід VB, використовуйте /language:VBдодатково до /verbose.


Я отримую "Неможливо імпортувати прив'язування" blah "з простору імен" blahURL "і Неможливо імпортувати операцію" SomeRequest ", елемент" xxx "відсутній. Чи означає це, що їм потрібно надати мені ще декілька файлів підтримки, або що їхня безпека настільки вимикається, що я не можу нічого зробити?
kfoster

Це, звичайно, звучить так, ніби вам не вистачає залежностей. Відкрийте WSDL і подивіться вгорі. Якщо ви бачите рядки, importу яких є вказівка, а потім схема розташування, яка вказує на шлях xsd, вам знадобляться і ті файли xsd.
Лінн Кришиться

Дякуємо за відповідь У мене є чудовий електронний лист із клієнтом, щоб дізнатися, чи зможу я отримати необхідний імпорт xsd. Це так засмучує, хоча, коли все зроблено правильно, я просто ввожу URL-адресу в діалогове вікно ServiceReference, натискаю кнопку та віола! Мені потрібно близько 3 рядків коду від виклику сервісного методу. Весь процес займає близько 5 хвилин. Але я працюю з цим клієнтом тижнями і не дістався кудись, бо їхні люди не можуть відкрити доступ до будь-яких визначень служб через Інтернет.
kfoster

Це грубо. Зараз я чекаю на vpn-з'єднання для проекту. На щастя, вони мені достроково дали wsdl та супроводжуючі xsd документи. Отже, ти знайшов цей імпорт у wsdl?
Лінн Кришиться

Так. Виявляється, для 4-х сервісів вони дали мені wsdl для 2-х, а xsd - для інших 2, тому немає повного набору файлів для жодної служби. Але я нарешті отримав xsd і зміг генерувати .cs-файли для 2-х сервісів, інші 2 будуть слідувати, я припускаю. Дякую.
kfoster
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.