Пример #1
0
        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;
        }
Пример #2
0
        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);
        }
Пример #3
0
 private void pushContext(WcfPerformaceMonitorContext context)
 {
     WcfPerformanceMonitorScope._CurrentScope = this;
     WcfPerformaceMonitorContext.Current      = context;
 }