7

我最近将我们现有的 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();

我希望这对其他人有帮助!

4

1 回答 1

7

所以我发现了这里发生了什么......事实证明我在我的App_Start/WebApiConfig.cs文件中启用了系统诊断跟踪。我随机注释掉了下面这行,一切都修复了。

config.EnableSystemDiagnosticsTracing();

我希望这对其他人有帮助!

于 2013-06-04T20:19:31.620 回答