是否有任何记录或行为添加到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>
行为能以某种方式记录路由服务最终使用哪个端点吗?
答案 0 :(得分:0)
尝试创建服务行为(或端点行为并在所有端点上配置行为)
挂钩消息检查器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
}
}
然后您要将检查器应用于行为并附加到路由器