连续呼叫WCF服务,AVE时间花费与单次呼叫不同

时间:2013-12-12 22:01:57

标签: c# wcf

我在本地托管了一个WCF服务,我编写了一个测试方法来继续为此服务构建Web请求并跟踪每次调用的时间花费,然后获得大致的时间。但似乎这个数字不正确:

100次通话的AVE时间:150毫秒, 单次呼叫很多次:30毫秒。

如果我在连续调用Web服务时调试,我可以获得正确的响应时间,该调用时我停止的请求调用大约30ms,但是一旦我删除了断点并按F5,其余的调用再次开始使用超过100毫秒...

那是因为我本地机器中的内存吗?或其他原因造成这种情况?

这是我的代码:

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUrl);
            request.Method = method;
            request.ContentType = "application/json;charset=utf-8";
            request.Timeout = 600000;
            request.Headers.Add("controldata", controldata);

            //add body if needed
            if (method == "POST" || method == "PUT")
            {
                if (requestBody != null)
                {
                    byte[] data = Encoding.UTF8.GetBytes(requestBody);
                    Stream dataStream = request.GetRequestStream();
                    dataStream.Write(data, 0, data.Length);
                    dataStream.Close();
                }
                else //allow post/put request send without request body
                {
                    request.ContentLength = 0;
                }
            }

            //get response
            Stopwatch watch = Stopwatch.StartNew();
            HttpWebResponse response = request.GetResponse() as HttpWebResponse;
            watch.Stop();
            timeSpend = watch.ElapsedMilliseconds;

然后在这部分外面我有一个循环,可以多次调用这个部分..

0 个答案:

没有答案