Member 13221327 Ответов: 1

Нужно вызвать событие из dll и использовать его в WCF и от мероприятия воспитывают в WCF в WPF


я вызываю событие из DLL, которое упоминается в моем созданном сервисе WCF.я получаю ошибку от службы wcf, когда этот вызов события обрабатывается в wcf .не могли бы вы предложить, как я могу сделать обратный вызов из dll в wcf и из wcf в клиентское приложение.

Что я уже пробовал:

Вызов событий из DLL в WCF и вызов событий из WCF в WPF(клиент)

PureNsanity

Я не уверен, что вам действительно нужен обратный звонок... Вы можете просто создать пользовательское исключение, а затем заставить клиента выполнить действие на основе типа исключения.

Member 13221327

я получаю исключение, как указано ниже

Эта операция запроса отправляется по адресу http://localhost:8750/ не получил ответа в течение настроенного таймаута (00:00:29.9980053). Время, отведенное на эту операцию, могло быть частью более длительного таймаута. Это может быть связано с тем, что Служба все еще обрабатывает операцию или не смогла отправить ответное сообщение. Пожалуйста, подумайте об увеличении времени ожидания операции (приведя канал/прокси к IContextChannel и установив свойство OperationTimeout) и убедитесь, что служба может подключиться к клиенту.

PureNsanity

Вы пробовали увеличить время ожидания операции? Или вызов сразу же завершается неудачей?

Member 13221327

мне нужно перезвонить из WCF в wpf.......когда событие вызывается из WCF, оно должно быть опубликовано в C#-классе

1 Ответов

Рейтинг:
1

johannesnestler

you could use a dublexchannel where you can use a clientside-contract implementation to do the callback - please have a look at the examples for dublexchannels. But I wouldn't use dublexchannels because to keep them allive for a Long time you have to use kind of ping messages. So I use a push/push mechanism where i host a WCF Service on Backend and a one on the Client side. Register from Client throght backendservice (to know the address for the Client "broadcast" on the backend) - So i can push from Client to backend and vice versa… I do it like it's done for mobile phones. There is a central Service that does the actual push (like an Event) for all Clients and which can be used from the other Services. Also have a look at udp-discovery protocol (just add endpoints for it) so your Services/Clients could automatically discover there Counterparts inside a Network (only Intranet)


Member 13221327

Этот толчок является дуплексной операцией канала

johannesnestler

so you use a dublexchannel? I don't really understand you problem then. So to call a WCF Service on any envent should be easy, but to callback to a client from WCF-Service (could be any kind of application, WPF whatever) you need a dublex channel. So now you say you use a dublexchannel - so your problem is you don't know how to implement the client-side callback-contract? Please show your code or try to reforumlate your question… I answered to "can you please suggest on how can i do a callback from dll to wcf and from wcf to client application." I suggested not to use a dublexchannel…. so your Question is really "how to implement a callback with a dublex-channel"?