コード例 #1
0
        private void SetAfterExecuteMethodCounters(SimpleRequestSoapMessage message, bool success)
        {
            this._ExecutionWatch.Stop();

            SetAfterExecuteMethodCounterValues(this._GlobalInstance, message, success);
            SetAfterExecuteMethodCounterValues(this._ActionInstance, message, success);
        }
コード例 #2
0
        /// <summary>
        /// 创建一个消息
        /// </summary>
        /// <param name="inputStream"></param>
        /// <returns></returns>
        public static SimpleRequestSoapMessage CreateMessage(Stream inputStream)
        {
            SimpleRequestSoapMessage message = new SimpleRequestSoapMessage();

            message.InitFromStream(inputStream);

            return message;
        }
コード例 #3
0
        /// <summary>
        /// 创建一个消息
        /// </summary>
        /// <param name="inputStream"></param>
        /// <returns></returns>
        public static SimpleRequestSoapMessage CreateMessage(Stream inputStream)
        {
            SimpleRequestSoapMessage message = new SimpleRequestSoapMessage();

            message.InitFromStream(inputStream);

            return(message);
        }
コード例 #4
0
        /// <summary>
        /// 创建消息
        /// </summary>
        /// <param name="stream"></param>
        /// <param name="serviceName"></param>
        /// <returns></returns>
        protected virtual SimpleRequestSoapMessage CreateMessage(Stream stream, string serviceName)
        {
            SimpleRequestSoapMessage message = SimpleRequestSoapMessage.CreateMessage(stream);

            message.ServiceName = serviceName;

            return(message);
        }
コード例 #5
0
        private string GetDataInCache(SimpleRequestSoapMessage requestMessage)
        {
            string result = null;

            ServiceMethodCache methodCache = null;

            if (this.GetMethodCacheManager().TryGetValue(requestMessage.MethodCacheKey, out methodCache))
            {
                methodCache.TryGetValue(requestMessage.Document.OuterXml, out result);
            }

            return(result);
        }
コード例 #6
0
        private static ServiceMethodConfigurationElement GetMethodSettings(SimpleRequestSoapMessage requestMessage)
        {
            ServiceSettings settings = ServiceSettings.GetConfig();

            ServiceMethodConfigurationElement result = null;

            ServiceConfigurationElement serviceElement = settings.Services[requestMessage.ServiceName];

            if (serviceElement != null)
            {
                result = serviceElement.Methods[requestMessage.Action];
            }

            return(result ?? settings.MethodDefaultSettings);
        }
コード例 #7
0
        private void InitParameters(SimpleRequestSoapMessage message)
        {
            if (this._InstanceName == null)
            {
                this._InstanceName = message.Action + " of " + this._Initializer;
                this._InstanceName = this._InstanceName.Replace('/', '-');
                this._InstanceName = this._InstanceName.Replace('\\', '-');
            }

            if (this._ExecutionWatch == null)
            {
                this._ExecutionWatch = new Stopwatch();
                this._ExecutionWatch.Start();
            }
        }
コード例 #8
0
        private void InitStreamAndMessage(SoapMessage message)
        {
            this._NewStream.Position = 0;
            this._OldStream.CopyTo(this._NewStream);
            this._NewStream.Position = 0;

            this._RequestMessage = this.CreateMessage(this._NewStream, this._Initializer.ServiceName);

            SimpleRequestSoapMessage.Current = this._RequestMessage;

            if (SimpleRequestSoapMessage.Current.Context.ContainsKey("TenantCode"))
            {
                TenantContext.Current.TenantCode = SimpleRequestSoapMessage.Current.Context.GetValue("TenantCode", string.Empty);
            }

            this._NewStream.Position = 0;
        }
コード例 #9
0
        private void SetAfterExecuteMethodCounterValues(WebMethodServerCounters instance, SimpleRequestSoapMessage message, bool success)
        {
            instance.RequestAverageDurationBase.Increment();
            instance.RequestAverageDuration.IncrementBy(this._ExecutionWatch.ElapsedMilliseconds / 100);

            if (success)
            {
                instance.RequestSuccessCount.Increment();
            }
            else
            {
                instance.RequestFailCount.Increment();
            }

            instance.RequestsPerSecond.Increment();
        }
コード例 #10
0
 private void SetBeforeExecuteMethodCounters(SimpleRequestSoapMessage message)
 {
     this._GlobalInstance.RequestCount.Increment();
     this._ActionInstance.RequestCount.Increment();
 }