我最近使用WebAPI后端将现有的ASP.NET MVC 2应用程序转换为MVC 4.不幸的是,我注意到WebAPI方面存在一些严重的性能问题.
我有MiniProfiler设置并添加了一些步骤,看看我是否能识别瓶颈,令我惊讶的是,它不是数据库.在转换之前,这样的请求不会超过50毫秒,所以看到这些简单的请求需要花费2秒钟,这有点令人震惊.

奇怪的是,所有这一切都是大多数延迟发生在请求甚至进入SQL调用本身之前.
我想知道是否有一种已知的方法可以将MiniProfiler更深入地绑定到WebAPI的调用中,以进一步检查这里实际发生的事情.任何帮助将不胜感激.
FWIW,这是用于此请求的代码
WebAPI控制器:
[HttpGet]
public bool AssetExistsById(string assetId) {
using (Current.Profiler.Step("WebAPI Call To Model")) {
return Asset.AssetExists(assetId);
}
}
Run Code Online (Sandbox Code Playgroud)
资产模型:
public static bool AssetExists(string assetId) {
using (Current.Profiler.Step("WCF call to DataAccess lib")) {
return WcfEndPoint.AssetExists(assetId);
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
更新
所以我发现这里发生了什么...事实证明我在我的App_Start/WebApiConfig.cs文件中启用了系统诊断跟踪.我随机注释了以下一行,一切都已修复.
config.EnableSystemDiagnosticsTracing();
Run Code Online (Sandbox Code Playgroud)
我希望这有助于其他人!