如何增加 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 位)的堆栈大小?的主要内容,如果未能解决你的问题,请参考以下文章