public void BeforeSendReply(ref Message reply, object correlationState) { try { var clientContext = new ClientApplicationContext(); clientContext.ServerMachineName = WcfLogProvider.MachineName; clientContext.RequestIdentity = ServerApplicationContext.Current.RequestIdentity; clientContext.ServerExceptionID = ServerApplicationContext.Current.ServerExceptionID ?? ""; var serviceType = OperationContext.Current.GetCurrentServiceDescription().ServiceType; if (!serviceVersionCache.ContainsKey(serviceType.FullName)) { lock (locker) { if (!serviceVersionCache.ContainsKey(serviceType.FullName)) { serviceVersionCache.Add(serviceType.FullName, serviceType.Assembly.GetName().Version.ToString()); } } } clientContext.ServerVersion = serviceVersionCache[serviceType.FullName]; reply.SetApplicationContext(clientContext); #if DEBUG var message = reply.ToString(); Console.WriteLine("Server send message:" + message); #endif var setting = WcfSettingManager.CurrentServerSetting(OperationContext.Current.GetCurrentServiceDescription().ServiceType); var securitySetting = setting.WcfSecuritySetting; if (securitySetting.PasswordCheck.Enable) { if (securitySetting.PasswordCheck.Direction == OperationDirection.Both || securitySetting.PasswordCheck.Direction == OperationDirection.Reply) { clientContext.Password = securitySetting.PasswordCheck.Password; } } var logSetting = setting.WcfLogSetting; if (logSetting.Enabled && logSetting.MessageInfoSetting.Enabled) { var direct = logSetting.MessageInfoSetting.MessageDirection; if (direct == MessageDirection.Both || direct == MessageDirection.Send) { var log = WcfLogProvider.GetServerMessageInfo( "ServerMessageInspector.BeforeSendReply", MessageDirection.Send, reply.ToString()); WcfServiceLocator.GetLogService().LogWithoutException(log); } } } catch (Exception ex) { LocalLogService.Log(ex.ToString()); } }
public object BeforeSendRequest(ref Message request, IClientChannel channel) { #if DEBUG var message = request.ToString(); Console.WriteLine("Client send message:" + message); #endif try { var channelType = channel.GetType(); var serverContext = new ServerApplicationContext(); var clientContext = new ClientApplicationContext(); clientContext.RequestIdentity = serverContext.RequestIdentity; ClientApplicationContext.Current = clientContext; var setting = WcfSettingManager.CurrentClientSetting(channelType); var securitySetting = setting.WcfSecuritySetting; if (securitySetting.PasswordCheck.Enable) { if (securitySetting.PasswordCheck.Direction == OperationDirection.Both || securitySetting.PasswordCheck.Direction == OperationDirection.Request) { serverContext.Password = securitySetting.PasswordCheck.Password; } } var logSetting = setting.WcfLogSetting; if (logSetting.Enabled && logSetting.MessageInfoSetting.Enabled) { var direct = logSetting.MessageInfoSetting.MessageDirection; if (direct == MessageDirection.Both || direct == MessageDirection.Send) { var log = WcfLogProvider.GetClientMessageInfo( channelType.FullName, ClientApplicationContext.Current.RequestIdentity, "ClientMessageInspector.BeforeSendRequest", MessageDirection.Send, request.ToString()); WcfServiceLocator.GetLogService().LogWithoutException(log); } } serverContext.RequestIdentity = Guid.NewGuid().ToString(); serverContext.ClientMachineName = WcfLogProvider.MachineName; if (!contractVersionCache.ContainsKey(channelType.FullName)) { lock (locker) { if (!contractVersionCache.ContainsKey(channelType.FullName)) { contractVersionCache.Add(channelType.FullName, channelType.Assembly.GetName().Version.ToString()); } } } serverContext.ClientVersion = contractVersionCache[channelType.FullName]; request.SetApplicationContext(serverContext); return(channelType); } catch (Exception ex) { LocalLogService.Log(ex.ToString()); } return(channel.GetType()); }
public object BeforeSendRequest(ref Message request, IClientChannel channel) { #if DEBUG var message = request.ToString(); Console.WriteLine("Client send message:" + message); #endif try { var channelType = channel.GetType(); var serverContext = new ServerApplicationContext(); var clientContext = new ClientApplicationContext(); clientContext.RequestIdentity = serverContext.RequestIdentity; ClientApplicationContext.Current = clientContext; var setting = WcfSettingManager.CurrentClientSetting(channelType); var securitySetting = setting.WcfSecuritySetting; if (securitySetting.PasswordCheck.Enable) { if (securitySetting.PasswordCheck.Direction == OperationDirection.Both || securitySetting.PasswordCheck.Direction == OperationDirection.Request) { serverContext.Password = securitySetting.PasswordCheck.Password; } } var logSetting = setting.WcfLogSetting; if (logSetting.Enabled && logSetting.MessageInfoSetting.Enabled) { var direct = logSetting.MessageInfoSetting.MessageDirection; if (direct == MessageDirection.Both || direct == MessageDirection.Send) { var log = WcfLogProvider.GetClientMessageInfo( channelType.FullName, ClientApplicationContext.Current.RequestIdentity, "ClientMessageInspector.BeforeSendRequest", MessageDirection.Send, request.ToString()); WcfServiceLocator.GetLogService().LogWithoutException(log); } } serverContext.RequestIdentity = Guid.NewGuid().ToString(); serverContext.ClientMachineName = WcfLogProvider.MachineName; if (!contractVersionCache.ContainsKey(channelType.FullName)) { lock (locker) { if (!contractVersionCache.ContainsKey(channelType.FullName)) { contractVersionCache.Add(channelType.FullName, channelType.Assembly.GetName().Version.ToString()); } } } serverContext.ClientVersion = contractVersionCache[channelType.FullName]; request.SetApplicationContext(serverContext); return channelType; } catch (Exception ex) { LocalLogService.Log(ex.ToString()); } return channel.GetType(); }