1
我已經在消耗大量的Web服務我的客戶端應用程序實現的WCF檢查員的名字。WCF客戶端檢查得到它調用Web服務或調用方法名稱或類型或某事
我使用這個檢查的記錄機制記錄從應用程序發送到這些網絡服務,他們給迴響應呼叫。
public class WcfClientInterceptor : IClientMessageInspector
{
protected static readonly ILog log4net = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private static readonly IMessageLogger Logger = new Log4NetLogger();
private MessageLogEntry LogEntry;// = new MessageLogEntry();
public void AfterReceiveReply(ref Message reply, object correlationState)
{
if (Logger.IsLogEnabled)
{
LogEntry.ResponseBody = reply.ToString();
Logger.Log(LogEntry);
}
}
public object BeforeSendRequest(ref Message request, IClientChannel channel)
{
if (Logger.IsLogEnabled)
{
LogEntry = LogEntry ?? new MessageLogEntry();
//instanceContext.GetServiceInstance().GetType().Name
//LogEntry.WebServiceIdentity = request.Headers.Action;
LogEntry.WebServiceIdentity = OperationContext.Current.IncomingMessageHeaders.Action;
LogEntry.RequestBody = request.ToString();
}
return null;
}
}
我的問題是我不知道什麼Web服務被調用。我想獲得一些對他們的引用並記錄下來。
這是工作request.Headers.Action的唯一方法,但它並不總是工作。大多數情況下,這是String.Empty。 OperationContext.Current爲空,我知道在客戶端是正常的。
有沒有得到那個被稱爲Web服務的名稱的任何其他方式? 或調用方法的名稱?或者其他的東西?
謝謝