Событие WCF Неизвестное сообщение получено - PullRequest
2 голосов
/ 20 октября 2008

Кто-нибудь знает, когда событие UnknownMessageReceived на WCF ServiceHost будет запущено?

У меня есть некоторый код, где я фиксирую событие Faulted en UnknownMessageReceived, но даже когда я отправляю неправильное сообщение в определенный сервис, я никогда не получаю событие.

Jochen

Ответы [ 4 ]

2 голосов
/ 04 января 2011

Я столкнулся с этим событием, когда неправильно указал адрес, подобный этому: http://localhost:4000/SomeService//mex

Обратите внимание на двойную косую черту

Служба размещена в приложении WPF. Из-за этого я также узнал, что это событие возникает в потоке, отличном от потока main / ui.

1 голос
/ 10 декабря 2009

Когда служба получает сообщение по каналу, объект ChannelDispatcher в верхней части стека каналов запрашивает каждый из связанных с ним объектов EndpointDispatcher, чтобы определить, какая конечная точка может обработать сообщение. Если ни один из объектов EndpointDispatcher не может принять сообщение, среда выполнения WCF вызывает событие UnknownMessageReceived для объекта ServiceHost, в котором размещается служба. Глава 3, «Создание приложений и услуг надежными», описывает, как справиться с этим событием. © (Microsoft® Windows® Фонд общения «Шаг за шагом» Джона Шарпа). http://download.microsoft.com/download/f/c/7/fc7d048b-b7a5-4add-be2c-baaee38091e3/9780735623361_MSWindowsCommFoundationSBS_ch13.pdf

Я тоже пытался поднять это событие, но безуспешно. В обычном случае (на стороне клиента) произошла исключительная ситуация с плохим сообщением.

0 голосов
/ 21 января 2009

Есть запись в блоге Wenlong Dong (да, я знаю), которая может указать вам правильное направление. Я верю, что Вэньлонг в команде WCF в MS.

0 голосов
/ 20 октября 2008

Полагаю (хотя и не уверен), это означает, что вы получаете (возвращаете) сообщение, которое не определено в вашем контракте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...