小编Jos*_*van的帖子

WebAPI表现不佳

我最近使用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)

我希望这有助于其他人!

mvc-mini-profiler asp.net-mvc-4 asp.net-web-api

7
推荐指数
1
解决办法
1902
查看次数