Відмінність між веб-посиланням та посиланням на послугу?


132

Чим відрізняється веб-посилання від посилання на службу у WCF? Що є кращим у WCF?


Погляньте також на Фабрики каналів - stackoverflow.com/questions/1698275/…
Manish Jain

1
хм, можливо, виберіть відповідь? хороший питання до речі
Daniël Tulp

Відповіді:


102

Відповідь низького рівня полягає в тому, що веб-довідник створить клієнтський проксі-клас, який дозволяє вашому коду спілкуватися з веб-службою, описаною через WSDL, і спілкуватися через SOAP або HTTP GET (інші плакати вказують, що це лише ASMX, але Веб-посилання також можуть спілкуватися з веб-службами на базі Java або на основі Python або Ruby, якщо всі вони говорять про WSDL та відповідають стандарту сумісності WS-I).

Служба довідок створить клієнтський проксі-клас, який спілкується зі службою на базі WCF: незалежно від того, послуга WCF є веб-службою чи ні.


1
+1 за додавання, що будь-який стандартний веб-сервіс із правильно відформатованим WSDL відповідає критеріям
sidney.andrews

Тож чи можу я додати посилання на службу до веб-служби на базі Java? Чи все-таки це матиме сенс? оскільки Java нічого не знає про стек
wcf

так, ви можете додати посилання на службу до веб-служби java тощо, якщо вона має wsdl. У цьому випадку посилання на службу трактуватиметься як "класична" веб-посилання.
Брейді Моріц

+1 за те, що веб-служба може споживати описані WSDL веб-сервіси, а також ASMX. Власне кажучи, у мене є бізнес-рівень, який має веб-посилання та сервісну довідку. Веб-посилання споживає веб-службу WSDL, тоді як посилання служби - послугу ASMX.
Джагд

67

Веб-довідник дозволяє спілкуватися з будь-якою службою на основі будь-якої технології, яка реалізує WS-I Basic Profile 1.1, і виставляє відповідні метадані як WSDL. Внутрішньо він використовує стек зв'язку ASMX на стороні клієнта.

Довідкова служба дозволяє спілкуватися з будь-якою службою на основі будь-якої технології, яка реалізує будь-який з багатьох протоколів, підтримуваних WCF (включаючи, але не обмежуючись цим базовим профілем WS-I). Внутрішньо він використовує стек зв'язку WCF на стороні клієнта.

Зауважте, що обидва ці визначення досить широкі, і обидва включають сервіси, не написані в .NET.

Цілком можливо (хоча і не рекомендується) додати веб-довідку, яка вказує на сервіс WCF, якщо використовується кінцева точка WCF basicHttpBindingабо якийсь сумісний спеціальний варіант.

Можна також додати службну довідку, яка вказує на послугу ASMX. Під час написання нового коду завжди слід використовувати довідку служби просто тому, що вона є більш гнучкою та надійною.


1
Чи може хто-небудь розпочати мене про те, як споживати послугу за допомогою сервісної довідки? Завдяки веб-довідці мені, здається, завжди вдається знайти основні функції в якомусь об’єкті обслуговування. З посиланням на сервіс, не так вже й багато. Як приклад, я намагаюся скористатися послугою тарифів FedEx, щоб отримати ціни на різні варіанти доставки FedEx. Я знаю, що десь є дзвінок getRates (), але я не можу його знайти з посиланням на сервіс.
Бен Міллс

@BenMills: шукайте клас із Clientсуфіксом.
Крістіан Хейтер

17

Посилання на сервіс - це новіший інтерфейс для додавання посилань на всі види послуг WCF (вони можуть бути не веб-службами), тоді як веб-посилання стосується конкретно веб-посилань ASMX.

Ви можете отримати доступ до веб-посилань за допомогою розширених опцій, щоб додати довідку служби (якщо я пам'ятаю правильно).

Я б скористався посиланням на службу, оскільки, наскільки я це розумію, це новіший механізм цих двох.


8
Додати довідку служби -> Додатково -> Додати веб-довідку ... нічого, як неінтуїтивні рішення.
Джагд

7

Службові посилання стосуються кінцевих точок та прив’язок, які повністю настроюються. Вони дозволяють вказати проксі-клієнта на WCF через будь-який транспортний протокол (HTTP, TCP, Спільна пам'ять тощо)

Вони призначені для роботи з WCF.

Якщо ви використовуєте WebProxy, ви майже зобов’язуєте себе використовувати WCF через HTTP


5

Ще один момент, який слід взяти до уваги, - це те, що новий інтерфейс для сервісного інтерфейсу надасть вам набагато більшу гнучкість у тому, як ви хочете створити свій клас проксі. Наприклад, це дозволить вам зіставити контракти даних на існуючі dll, якщо вони відповідають (насправді це поведінка за замовчуванням).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.