2009-06-30 2 views
2

Я знаю, что привязки WSDualHttpBinding, NetTcpBinding и NetPeerTcpBinding поддерживают операции обслуживания duplex/callback.WCF & ASP.NET: поддержка дуплексного использования с использованием AJAX

Я не могу найти нигде в Интернете, даже если кто-либо спрашивает, поддерживает ли дуплекс для аякс-вызовов. Может быть, причиной моей неспособности найти что-либо на этом является то, что я полностью недопонимаю какую-то ключевую концепцию WCF, которая ставит вопрос в самый тупой вопрос ...

Я знаю, что привязка webHttpBinding вместе с <enableWebScript/> gneerates the js needed для прокси-объектов на стороне клиента.

Это невозможно, потому что услуги дуплекса нуждаются в обслуживании callbackservice, и нет возможности сделать это на стороне клиента? (Если это имеет смысл ..)

Приложение добавлено следующим образом:
1. WebSite1 - ajax вызывает WebSite1.MyClientService.
2. WebSite1.MyClientService - WCF Самостоятельное обслуживание, которое ссылается на DLL MyServiceProxies.
3. MyServiceProxies DLL - пользовательские прокси (используемые вместо «Добавить служебную ссылку» автоматически сгенерированные прокси), которые наследуются от ClientBase. Это просто делегирует фактические вызовы службы на base.Channel.OperationName() в [MyService: IMyService в WinService WCF Host EXE].
4. WinService WCF Host EXE - он работает как служба Windows, как одноэлементный, позволяющий многопоточные вызовы. Вызовы из WebSite1 запрашивают значения in-memory, хранящиеся в этом одноэлементном режиме. Этот синглтон будет в конечном итоге передавать все данные, хранящиеся в памяти, в базу данных через отдельный слой данных.

WinService настроен на использование дуплексных вызовов через net.tcp. WinService будет работать на том же компьютере, что и приложение IIS WebSite1.

ответ

2

Я нигде не могу найти на интернет любой даже спрашивать, если дуплексный как-то поддерживается для Ajax вызовов. Может быть, причина моя неспособность найти что-либо по этому поводу, потому что я полностью непонимание некоторых ключевых WCF концепции, что делает вопрос тупой вопрос есть ...

не немой, может быть, потому что Я думаю, что это AJAX, который вы не понимаете, а не WCF.

На самом деле не имеет смысла иметь дуплексный контракт в AJAX. Дуплексный контракт должен ожидать, что сервер будет вызывать операции по контракту в любое время. Это не значит публиковать/подписываться, например, или запрашивать ответ, когда действие клиента необходимо, прежде чем сообщения начнут поступать. С дуплексным контрактом сообщения могут появляться в любое время.

Кто их будет слушать? Не браузер. Если браузер будет реагировать на нежелательные сообщения, поступающие с какой-либо удаленной машины, а затем на запуск кода - ну, это очень похоже на определение вируса, не так ли?

Я не думаю, что вы найдете поддержку для дуплексных контрактов в JavaScript в течение некоторого времени.

Смежные вопросы