номер
AJAX обычно используется для отправки простых запросов HTTP GET ("REST"). Так не должно быть. Вы также можете отформатировать полезную нагрузку, используя конверт SOAP, и отправить ее в конечную точку. В этом случае служба WCF должна быть, по крайней мере, wsHttp
или basicHttpBinding. Вот пример использования VBScript для создания и отправки SOAP-запроса , но вы можете сделать то же самое в Javascript. Вы не можете использовать более продвинутые расширения SOAP, такие как WS-Security, XML DigSig и так далее. Ну, вы могли бы , но это было бы непрактично. Например, я не знаю ни одной библиотеки канонизации XML в Javascript, которая необходима для выполнения WS-Security или цифровых подписей. Есть 17 подобных препятствий. Результат: вы не можете использовать более продвинутые расширения SOAP при вызове из Javascript.
.
Если вы используете jQuery ajax, вам потребуется обратный вызов beforeSend
в запросе ajax для установки заголовка SOAPAction.
.
Сказав это, гораздо проще обрабатывать json в программе Javascript, чем обходить DOM XML-документа. Другими словами, вам лучше использовать JSON / REST при подключении из Javascript к WCF вместо SOAP. Иногда это не вариант, я думаю.
Да
Служба WCF может иметь несколько конечных точек, и они могут прослушивать один и тот же или разные транспорты, такие как HTTP, net.tcp, net.pipe или net.msmq.
Нет. aspNetCompatibilityEnabled
просто включает некоторые ASMX-подобные функции на сервере. Это влияет на то, как устроен сервис, и не зависит от подписи сообщения. Это исключает использование не HTTP-протоколов. Подробнее об этом см. Статью Вэньлун Донга .
Какую платформу использовать на клиенте - что проще? У меня нет опыта работы с ScriptManager, но критерии принятия решения довольно просты. jQuery прекрасно работает и подходит, если вы уже используете jQuery. Если у вас нет или вы хотите использовать jQuery, вы можете использовать XmlHttpRequest для отправки запросов SOAP или REST. Если это как-то неуместно, используйте что-то еще.