如何增加 ASP.NET Core 二进制文件(32 位)的堆栈大小?

Posted

技术标签:

【中文标题】如何增加 ASP.NET Core 二进制文件(32 位)的堆栈大小?【英文标题】:How to increase the stack size of an ASP.NET Core binary (32 bit)? 【发布时间】:2018-09-16 16:38:20 【问题描述】:

是否可以增加 ASP.NET core 2 二进制文件的堆栈大小?我必须使用一个 32 位 COM 互操作组件,它恰好在某些定义的条件下破坏了堆栈。这不是无限递归,只是在请求尽可能大的数据集时碰巧触及限制的工作负载,因此增加堆栈可能是一个可以接受的解决方法。

通过 EDITBIN 修改堆栈大小只有在直接应用于 dotnet.exe 时才有效,这显然不是首选解决方案。

【问题讨论】:

您可以创建一个线程来运行您的组件,并在此时指定堆栈大小:docs.microsoft.com/en-us/dotnet/api/… 【参考方案1】:

从 .NET Core 3.0 开始,构建的输出是 Windows 平台上的 .exe 文件。我们可以在发布之前或之后在 exe 上应用 editbin。如果我们在进程外运行 Web 应用程序,这可以正常工作。我已经测试过了。显然,对于inprocess,除了editbinning工作进程之外没有其他解决方案。

【讨论】:

【参考方案2】:

对于.Net 5,默认堆栈大小可以通过环境变量COMPlus_DefaultStackSize=100000设置。十六进制值

【讨论】:

以上是关于如何增加 ASP.NET Core 二进制文件(32 位)的堆栈大小?的主要内容,如果未能解决你的问题,请参考以下文章

[Asp.net Core]局部视图

[Asp.net Core]局部视图

在 Asp.Net core v3.1 中增加上传文件大小

3 .NET Core笔试题

使用 Asp.NET Core 3.1 框架将文件上传到服务器时如何使用 IFormFile 作为属性?

asp.net core 3.0 gRPC框架小试