首页 > 解决方案 > .net 核心上的 Servicestack 执行超时

问题描述

我们使用服务堆栈,并在 .net 核心上使用 InProcess 模型运行。

我们有一些运行时间较长的请求,我们想超时 - 但是,我正在努力做到这一点。在 .net core 之前,您可以配置 httpRuntime 的“executionTimeout”,但是,这在 .net core 中不可用。这样做的新方法(我相信)是在配置中使用“requestTimeout”——但微软的网站声称 InProcess 模型不支持这种方式。如果感觉剩下的唯一解决方案是在某处的服务堆栈中配置它,但我没有看到任何明显的地方。

我在这里错过了什么吗?是否有一个 ServiceStack 选项可以强制线程在超时时完成,或者这是不可能的?

通过 IIS 有其他超时选项,但没有一个会停止执行

谢谢

标签: asp.net-coreiisservicestack

解决方案


ServiceStack在 .NET HTTP Worker Request 线程上作为库处理程序运行,即它不产生或管理任何自己的线程。任何请求配额限制或超时都需要在底层 HTTP 服务器上配置,即就像任何其他 ASP.NET Core 应用程序需要做的那样。

如果您使用的是 IIS,您仍然可以在标记中的 Web.config 中配置 ASP.NET Core 请求超时。<aspNetCore/>如果您使用默认的 Kestrel HTTP Server,您可以在配置 Web Host 时配置其限制


推荐阅读