代码之家  ›  专栏  ›  技术社区  ›  Axl

ServiceHost消息接收事件?

  •  0
  • Axl  · 技术社区  · 15 年前

    在ServiceHost、Channel或Dispatcher处理消息之前,一定要附加一个事件吗?我假设它可以通过OperationContext.Current访问,但我能找到的最接近的事件是打开和关闭。是否有类似MessageReceived或BeforeMessageProcessed事件的内容?

    如果不使用事件,是否有其他方法使用WCF类/配置来确定ServiceHost SingletonInstance当前是否正在处理数据协定?

    编辑:IDispatchMessageInspector(AfterReceiveRequest和BeforeSendReply)是完美的。我有大约8个服务,需要知道他们目前正在处理哪些消息(DataContracts)。虽然可以使用类似于接受委托并在BeforeReceive()、InvokeDelegate()、AfterReceive()执行操作的助手方法;但是使用IDispatchMessageInspector和行为要容易得多。

    1 回复  |  直到 15 年前
        1
  •  4
  •   default    8 年前

    据我所知,在服务主机级别不存在这样的事件。你能解释一下你想完成什么吗?

    IDispatchMessageInspector . 在这种情况下,您可以通过 service or an endpoint behavior .