【问题标题】:First call of the day to C# webservice very slow - analysis当天第一次调用 C# webservice 非常慢 - 分析
【发布时间】:2014-10-14 03:03:45
【问题描述】:

这个问题实际上是关于分析的 - 我如何分析导致问题的原因?

情况 - 我们有一个通过 IIS 7.5 配置的 C# web 服务,并且同一 Intranet 域中的一个网站使用 POST 和 GET 方法访问该 web 服务。服务器是 windows 2008 r2 64 位,C# 是 4.0。一天中的第一个电话很慢(30-60 秒),但我还没有检查我是否在当天晚些时候再试一次,它是否也很慢。后续调用时间为 2-3 秒。使用 FireFox Web 控制台或 firebug 检查时,时间花在“等待”Web 服务上。

我尝试过的事情:-

  • 为 Web 服务 AppPool 设置无回收时间
  • 为 Web 服务 AppPool 设置无空闲超时
  • 设置代理 bypassonlocal = true 和 usesystemdefault = false 以防出现代理查找问题

到目前为止没有任何效果。我的想法是,即使它在第一次运行时将 C# 编译为机器代码,如果 AppPool 没有超时或回收,它也不应该“过期”,但它每天都很慢。

这么多选项,我该如何寻找问题的根源?我可以在服务器上运行任何诊断程序来检查 Web 服务在做什么?

【问题讨论】:

  • 什么样的网络服务? ASMX?
  • RESTFUL / http 端点

标签: c# asp.net web-services


【解决方案1】:

从您的描述来看,您的网络服务可能会在一段时间不活动后的第一次调用很慢而随后的调用速度更快的情况下进入睡眠状态。

我已经在我的许多 .NET IIS 应用程序上看到了这种行为,至少可以说令人沮丧!

不过,这是 .NET 的默认行为,但有一些方法可以让您的应用程序保持唤醒状态,尤其是从 .NET4 开始。

作为第一步,我建议您参考以下文章。试一试,看看这是否对您有任何影响: https://www.simple-talk.com/blogs/2013/03/05/speeding-up-your-application-with-the-iis-auto-start-feature/

祝你好运!

【讨论】:

  • 试过这个,它似乎解决了我的问题。谢谢!
猜你喜欢
  • 2023-03-13
  • 1970-01-01
  • 2014-02-15
  • 2013-07-08
  • 1970-01-01
  • 2017-04-23
  • 2021-02-01
  • 2017-01-24
  • 1970-01-01
相关资源
最近更新 更多