是否有人知道何时会触发WCF ServiceHost上的UnknownMessageReceived事件?
我有一些代码可以捕获Faulted en UnknownMessageReceived事件,但即使我向特定服务发布了错误消息,我也从未收到过该事件。
约亨
答案 0 :(得分:2)
当我错误地指定了这样的地址时,我遇到了这个事件: http://localhost:4000/SomeService//mex
请注意双正斜杠
该服务托管在WPF应用程序中。因此我也发现这个事件是在与主/ ui线程不同的线程上引发的。
答案 1 :(得分:1)
当服务在通道上收到消息时,通道堆栈顶部的ChannelDispatcher对象会查询其关联的每个EndpointDispatcher对象,以确定哪个端点可以处理该消息。如果没有任何EndpointDispatcher对象可以接受该消息,则WCF运行时会在托管该服务的ServiceHost对象上引发UnknownMessageReceived事件。第3章,使应用程序和服务健壮,“描述了如何处理此事件。 ©(Microsoft®Windows® 通信基金会一步步由约翰夏普)。 http://download.microsoft.com/download/f/c/7/fc7d048b-b7a5-4add-be2c-baaee38091e3/9780735623361_MSWindowsCommFoundationSBS_ch13.pdf
我试图提升这个事件 - 没有成功。在常见情况下(在客户端),我有一个错误的消息异常。
答案 2 :(得分:0)
Wenlong Dong有一个blog entry(是的,我知道)可能会指出你正确的方向。我相信文龙是MS的WCF团队。
答案 3 :(得分:-1)
我猜(不确定)这意味着你得到(退回)合同中未定义的消息。