无论如何,是否需要向WCF路由列表中添加一些日志记录或行为,以便在路由使用备份列表上的端点时记录日志?

     <filterTables>
        <filterTable name="RoutingTable">
          <add filterName="Filter1" endpointName="EP1" priority="0" backupList="FailOver"/>
        </filterTable>
      </filterTables>
      <backupLists>
        <backupList name="FailOver">
          <add endpointName="EP2" />
        </backupList>
      </backupLists>


行为可以以某种方式记录路由服务最终使用了哪个端点吗?

最佳答案

尝试创建服务行为(或终结点行为并在所有终结点上配置行为)

连接消息检查器IClientMessageInspector

在构造函数中传递端点

将消息和端点记录在BeforeSendRequest方法上

public class MyClientMessageInspector : IClientMessageInspector
{
    private ServiceEndpoint _endpoint;

    public MyClientMessageInspector(ServiceEndpoint endpoint)
    {
        _endpoint = endpoint;
    }

    public object BeforeSendRequest(ref Message request, IClientChannel channel)
    {
        Log(request, _endpoint);
        return null;
    }

    public void AfterReceiveReply(ref Message reply, object correlationState)
    {
        //no-op
    }
}


那么您想将检查器应用于某种行为并附加到路由器

关于wcf - WCF路由备份列表-使用时进行日志记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5704401/

10-17 00:09