2

我们一直在寻找我的 WCF Web 应用程序 (W2K3 IIS) 上的一个错误,该错误导致了 stackoverflow。

为了解决这个问题,我需要通过创建一个具有我想要分配的内存量的线程来增加我的应用程序的堆栈。

但是子线程会发生什么?我的应用程序创建了许多线程,它们会继承该值还是我必须为每个线程设置新值?

编辑:如果我将(WCF)服务作为控制台主机运行,它们就可以正常工作。此外,如果我修改 w3wp.exe 的堆栈(使用 EDITBIN),它们在 IIS 上也可以正常工作。
所以我需要增加堆栈。我知道我可以创建一个具有堆栈大小的线程(还有其他方法吗?)但我需要知道子线程会发生什么。

Edit2:我们需要定义一些导致堆栈溢出的大向量。所以这不是我们系统中的错误。我真的需要(必须)增加堆栈

4

2 回答 2

2

亲自尝试后,我可以说是!子线程保持父线程上设置的堆栈数量。

于 2009-03-03T02:43:39.167 回答
1

听起来您需要更仔细地考虑为什么会出现堆栈溢出,而不是仅仅分配更多内存。

是否有一些带有大量局部变量的函数或堆栈中的数组?

你确定你没有在无意中递归循环的地方泄漏吗?

-亚当

于 2009-02-27T15:31:58.463 回答