private void popContext() { if (this._Thread != Thread.CurrentThread) { throw new MB.Util.APPException("在使用性能监测时,返回出现线程不一致", Util.APPMessageType.SysErrInfo); } if (_OriginalScope == null && _OriginalContext == null) { if (WcfPerformaceMonitorContext.Current != null) { MB.Util.TraceEx.Write(WcfPerformaceMonitorContext.Current.ToString(), APPMessageType.CodeRunInfo); } } WcfPerformanceMonitorScope._CurrentScope = _OriginalScope; WcfPerformaceMonitorContext.Current = _OriginalContext; }
public object AfterReceiveRequest(ref System.ServiceModel.Channels.Message request, System.ServiceModel.IClientChannel channel, System.ServiceModel.InstanceContext instanceContext) { bool isPerformanceMonitored = false; var re = request.Headers.FindHeader(SOD.PERFORMANCE_MONITOR_SWITCH_MESSAGE_HEADER, SOD.MESSAGE_HEADER_NAME_SPACE); if (re >= 0) { isPerformanceMonitored = request.Headers.GetHeader <bool>(SOD.PERFORMANCE_MONITOR_SWITCH_MESSAGE_HEADER, SOD.MESSAGE_HEADER_NAME_SPACE); } if (isPerformanceMonitored) { WcfPerformanceMonitorScope pmScope = new WcfPerformanceMonitorScope(); WcfRequestMonitorInfo monitorInfo = new WcfRequestMonitorInfo(); WcfPerformaceMonitorContext.Current.WcfProcessMonitorInfos.Add(new WcfRequestMonitorInfo()); } DateTime dtWcfProcessBegin = DateTime.Now; return(dtWcfProcessBegin); }
private void pushContext(WcfPerformaceMonitorContext context) { WcfPerformanceMonitorScope._CurrentScope = this; WcfPerformaceMonitorContext.Current = context; }