C# 预请求筛选器之前的ServiceStack请求处理延迟
我们使用 开始时间测量和C# 预请求筛选器之前的ServiceStack请求处理延迟,c#,asp.net,request,servicestack,delay,C#,Asp.net,Request,servicestack,Delay,我们使用 开始时间测量和 HostContext.RawHttpHandlers.Add(action) 停止时间测量。我们依次向服务器发送请求(使用IIS Express开发服务器在本地主机上运行),并观察这两个操作之间的时间间隔。有时低至几毫秒,但通常高达几百毫秒。轻量级GET请求也会发生这种情况 据 HostContext.rawHttpHandler在执行任何其他操作之前执行,即返回任何ASP.NET IHttpHandler将完全通过ServiceStack并处理自定义IHttpHa
HostContext.RawHttpHandlers.Add(action)
停止时间测量。我们依次向服务器发送请求(使用IIS Express开发服务器在本地主机上运行),并观察这两个操作之间的时间间隔。有时低至几毫秒,但通常高达几百毫秒。轻量级GET请求也会发生这种情况
据
m_appHost.PreRequestFilters.Insert(0, action) // we want to be the first filter executed
我们使用如下属性在AppHost Ctor中注册路由:
m_appHost.CatchAllHandlers.Insert(0, action)
知道是什么导致了在RawHttpHandler之后和PreRequestFilters之前的延迟吗
ServiceStack的版本是4.0.50。时间测量是错误的
typeof(HelloRequestDTO).AddAttributes(new RouteAttribute("/hello/{Name}", "GET"));
返回50到1000毫秒之间的随机值
使用System.Diagnostics.Stopwatch和
(DateTime.Now - lastDateTime).TotalMilliseconds
在
watch.ElapsedMilliseconds - lastMillisecondTime
和
HostContext.RawHttpHandlers
我没想到日期时间的不精确性这么高。我再也不会用它来计时毫秒了
m_appHost.PreRequestFilters