当前位置: 首页 > 编程语言 > C#

WebAPI首次调用服务时速度慢

时间:2023-04-10 19:29:20 C#

WebAPI首次调用服务时速度慢我遇到了WCF问题和启动时间慢的问题,所以我将所有代码切换为使用WebAPI。虽然启动时间已大幅减少(约8-15秒减少到约2秒),但启动时仍然存在奇怪的延迟。目前大约2秒,但后续调用始终低于0.5秒,直到发生超时。我检查了所有ApplicationPool设置以确保没有任何启动延迟或空闲超时设置。我发现这个链接第一次调用网络服务很慢,这对我没有帮助-我在冷启动时仍然遇到同样的速度问题。还发现每天第一次调用网络服务很慢似乎并不适用于我。我在WebAPI服务上启用了跟踪,发现第一次调用和第二次调用之间的唯一区别是显示WebHostHttpControllerTypeResolver.GetControllerTypes的两行。我似乎找不到太多关于此的信息,但这是我能看到的唯一区别。是否有任何其他类型的日志记录可用于确定实际发生的情况?这是我在问题下的对话摘要超时永远不一样,但大致相同......扩展,我发布服务器-第一次调用是~2秒-后续调用是~0.5秒。大约20分钟后(很难确定实际时间),同样的情况发生-~2然后是~0.5。20分钟-这是默认的AppPool空闲超时(以分钟为单位)。所以听起来IIS卸载了您的应用程序池,以便您下次在20分钟后点击它“再次加载”(不确定它是否重新编译)因此延迟。您可以将其设置为0以禁用超时(注意反应性)或将其设置为更大的值。如果超时被禁用,您可能需要考虑添加一个计划任务以在使用率较低的时候回收您的应用程序池,可能是凌晨1点或任何适合您需要的时间。关于WCF我有WCF问题和启动时间慢这也是我的经验(使用IIS托管WCF),正如我上面提到的,只是禁用了我的WCF服务的应用程序池的超时。这使它们保持温暖和温暖。此外,当我知道我的系统不会用于允许IIS执行一些内务处理时,我每天都会进行一次回收活动。就IIS而言,托管在IIS中的WCF只是另一个IIS应用程序。?以上就是C#学习教程:WebAPI慢速首次调用服务的全部内容。侵权请点击右侧联系管理员删除。如需转载请注明出处: