2009-02-27 54 views
2

我們一直追逐我的WCF Web應用程序(W2K3 IIS),這導致了一個stackoverflow的錯誤。IIS stackoverflow

要解決這個問題,我需要通過創建一個具有我想要分配的內存量的線程來增加我的應用程序的堆棧。

但是,子線程會發生什麼?我的應用程序創建了許多線程,它們是否會繼承該值,或者我將不得不爲每個線程設置新值?

編輯:如果我運行(WCF)服務作爲控制檯主機,他們工作得很好。另外,如果我修改w3wp.exe的堆棧(使用EDITBIN),它們在IIS上也可以正常工作。
所以我需要增加堆棧。我知道我可以創建一個具有堆棧大小的線程(有沒有另一種方式?),但我需要知道子線程會發生什麼。

Edit2:我們需要定義一些導致堆棧溢出的BIG向量。所以這不是我們系統中的一個錯誤。我真的需要(有)增加堆棧

+0

你確定它不是一個永不終止的遞歸調用嗎? – mookid8000 2009-02-27 14:58:51

+0

在嘗試增加內存分配之前,我會查找內存泄漏。 – 2009-02-27 14:59:53

回答

2

自己試了之後,我可以說是! 子線程保留在父線程上設置的堆棧數量。

1

這聽起來像你需要更仔細想想爲什麼你得到一個堆棧溢出,而不是僅僅分配更多的內存。

是否有一些具有大量本地變量或堆棧中的數組的函數?

你確定你沒有泄漏的地方無意中遞歸循環?

-Adam