Стек IISO - PullRequest
       28

Стек IISO

2 голосов
/ 27 февраля 2009

Мы преследовали ошибку в моем веб-приложении WCF (W2K3 IIS), которая приводила к переполнению стека.

Чтобы исправить это, мне нужно было увеличить стек моего приложения, создав поток с объемом памяти, который я хотел выделить.

Но что происходит с дочерними потоками? Мое приложение создает много потоков, будут ли они наследовать значение, или мне придется устанавливать каждый отдельный поток с новым значением?

Edit: если я запускаю службы (WCF) в качестве хоста консоли, они работают просто отлично. Кроме того, если я изменяю стек w3wp.exe (с помощью EDITBIN), они также отлично работают на IIS.
Поэтому мне нужно увеличить стек. Я знаю, что могу создать поток с размером стека (есть ли другой способ?), Но мне нужно знать, что происходит с дочерними потоками.

Edit2: нам нужно определить несколько больших векторов, которые приводят к переполнению стека. Так что это не ошибка в нашей системе. Мне действительно нужно (нужно) увеличить стек

Ответы [ 2 ]

2 голосов
/ 03 марта 2009

Попробовав сам, могу сказать да! Дочерние потоки сохраняют размер стека, установленный в родительском потоке.

1 голос
/ 27 февраля 2009

Похоже, вам нужно более тщательно подумать о , почему вы получаете переполнение стека, а не просто выделяете больше памяти.

Есть ли какая-нибудь функция с огромным количеством локальных переменных или массивом, который собирается в стеке?

Вы уверены, что не протекаете где-нибудь с непреднамеренными рекурсивными циклами?

-Adam

...