#asp.net #iis #stack-overflow
#asp.net #iis #переполнение стека
Вопрос:
Я пытаюсь увеличить размер стека 32-разрядного IIS, используя следующую команду
EDITBIN /STACK:1048576 w3wp.exe
но столкнулся со следующей проблемой:
fatal error LNK1104: cannot open file w3wp.exe
Я проверил w3wp.exe присутствует в windows/system32/inetsrv
папке.
Комментарии:
1. вы проверили разрешения, которые у вас есть для exe?
2. Сначала вам нужно остановить его запуск.
Ответ №1:
Понимая, что вы решили свою проблему (предположительно, исключение переполнения стека) с помощью обходного пути с явным созданием потоков, вот фактический ответ на ваш вопрос:
Ошибка («не удается открыть файл w3wp.exe «) — это, как описано, ошибка доступа к файлу или что-то в этом роде. Документация (http://msdn.microsoft.com/en-us/library/ts7eyw4s.aspx ) перечислены всевозможные возможные причины этой ошибки, но вы, вероятно, столкнулись с одной из трех проблем:
- Возможно, файл используется, потому что процесс запущен (убедитесь, что вы остановили все экземпляры w3wp.exe выполняется в вашей системе, независимо от того, кто запустил процесс — например, остановив все пулы приложений вручную).
- Возможно, у вас нет прав на редактирование файла, потому что вы не запустили командную строку VS «От имени администратора».
- Возможно, у вас нет прав на редактирование файла, потому что он принадлежит «TrustedInstaller», и даже группа «Администраторы» не имеет доступа на запись. Если это так, то для изменения файла вам потребуется сменить владельца (например http://helpdeskgeek.com/windows-7/windows-7-how-to-delete-files-protected-by-trustedinstaller /)
Мне пришлось столкнуться со всеми тремя из этих проблем, чтобы иметь возможность фактически изменить максимальный размер стека по умолчанию в IIS в Windows 7.
Но, как вы отметили, создание явного потока обычно будет лучшей идеей, если вы СМОЖЕТЕ это сделать, поскольку это позволит избежать затрат на обслуживание сервера при ручном исправлении w3wp.exe файл каждый раз, когда центр обновления Windows изменяет его.
Комментарии:
1. только что была эта проблема, этот ответ сработал для меня (trustedinstaller)
2. Мне помогла эта проблема при использовании /Largeaddressaware и запуске командной строки в качестве администратора.
Ответ №2:
Я решил проблему, создав новый поток со ссылкой на следующую ссылку.
http://blogs.msdn.com/b/tom/archive/2008/03/31/stack-sizes-in-iis-affects-asp-net.aspx
Ответ №3:
Я пытался обновить свою Visual Studio, чтобы она была LARGEADDRESSAWARE. Согласно http://mkwec.de/2010/01/08/make-visual-studio-use-more-than-2-gig-of-memory /
Оказывается, мне нужно было просто запустить командную строку разработчика для Visual Studio «От имени администратора», как предложил Tao