我最近将我们现有的 ASP.NET MVC 2 应用程序转换为带有 WebAPI 后端的 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);
}
}
资产模型:
public static bool AssetExists(string assetId) {
using (Current.Profiler.Step("WCF call to DataAccess lib")) {
return WcfEndPoint.AssetExists(assetId);
}
}
谢谢!
更新
所以我发现了这里发生了什么......事实证明我在我的App_Start/WebApiConfig.cs
文件中启用了系统诊断跟踪。我随机注释掉了下面这行,一切都修复了。
config.EnableSystemDiagnosticsTracing();
我希望这对其他人有帮助!