4

我在我的 WebAPI 自托管应用程序上进行了一些负载测试,发现 Ninject 的缓存修剪会使应用程序停顿几秒钟(在屏幕截图中进行负载分析)。

如何避免缓存修剪停止请求?

我所做的只是设置 HttpSelfHostConfiguration.DependencyResolver = new NinjectDependencyResolver(new StandardKernel()) (省略配置)

有没有办法在请求结束时删除对象?

更新:

从这里https://github.com/ninject/ninject/issues/37,似乎只能期望 Ninject.Web 和 Ninject.Web.MVC 在请求结束时删除对象

更新/注意:

我一直在使用 nuget 包 Ninject.Web.WebApi-RC 以及 AttributeRouting.WebApi.Hosted。

在此处输入图像描述

更新

我更新了范围和解析器定义,现在我发现我遇到了麻烦......我现在只是针对返回字符串常量的操作进行测试。

在此处输入图像描述

4

1 回答 1

1

使用https://nuget.org/packages/Ninject.Web.WebApi.Selfhost

这是一个如何使用它的示例: https ://github.com/ninject/Ninject.Web.WebApi/tree/master/src/Ninject.Web.WebApi.Selfhost

它在请求结束时处理对象 InRequestScope。

于 2013-03-05T23:24:39.250 回答