【问题标题】:Time-consuming communication with HttpClient, WebApi and WCF与 HttpClient、WebApi 和 WCF 的耗时通信
【发布时间】:2018-01-11 13:14:50
【问题描述】:

我需要帮助来了解我的时间问题出在哪里。我有一个 winform/wpf 应用程序,它通过 webapi 2 和 System.Net.Http.HttpClient 与 WCF 服务通信。

客户端 => HttpClient => webapi => wcf 服务。

当我部署并运行它时,第一次需要很长时间才能得到答案。但是第二次和更多次它非常快。

如果我有一段时间不运行它,它会再次休眠。

为什么一开始这么慢,看什么?

【问题讨论】:

  • 使用像wireshark或fiddler这样的嗅探器过滤包含时间的http消息。通常在第一次建立 cookie 并将数据下载到 PC 上的临时 IE 文件夹时。当您第二次访问网站时,IE 会在下载所需数据之前自动搜索临时文件夹。

标签: c# performance wcf asp.net-web-api httpclient


【解决方案1】:

第一次调用 WebApi 时会初始化(IIS 必须运行 Api,默认情况下 ISS 会在第一次调用后启动 api)。这需要一些时间。而在 IIS 中,您将默认的 AppPool 空闲超时(分钟)设置为 20 分钟,因此 20 分钟后应用程序将进入睡眠模式,并且 IIS 必须唤醒应用程序。 WebApi why 1st call is slow?

WCF 也存在几乎相同的问题

WCF why 1st call is slow?

因此,在您的应用程序中,您的第一次 api 调用速度很慢,之后您的第一次 wcf 调用速度很慢。你已经把速度加倍了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    • 2023-02-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2010-09-23
    相关资源
    最近更新 更多