.net 核心上的服务堆栈执行超时

时间:2021-01-29 11:39:50

标签: asp.net-core iis servicestack

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

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

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

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

谢谢

1 个答案:

答案 0 :(得分:0)

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

如果您使用的是 IIS,您仍然可以在 <aspNetCore/> 标记中配置 ServiceStack。如果您使用默认的 Kestrel HTTP 服务器,您可以ASP.NET Core Request Timeouts in Web.config