Тайм-аут скрипта игнорируется VB DLL - PullRequest
1 голос
/ 12 ноября 2010

Очень кратко: у меня возникла проблема с обеспечением того, чтобы библиотеки VB DLL выполняли тайм-ауты, установленные в IIS и ASP.

Сайт, на котором я работаю, использует несколько собственных DLL-библиотек, и их методы могут потенциально работать дольше, чем веб-пользователь готов ждать. Если посетитель нажимает клавишу Escape или закрывает свой браузер, то процесс естественно продолжается на сервере, высасывая процессорное время и память.

В моем ASP я установил server.scriptTimeout на небольшое число (скажем, 10 секунд), и я сделал то же самое в IIS для всего веб-приложения (потому что я знаю, что server.scriptTimeout игнорируется, если он ниже чем тайм-аут IIS).

Если я запускаю свою ASP-страницу без чего-либо, кроме цикла, который выполняется несколько миллионов раз, тогда сценарий правильно выдерживает , то есть через 10 секунд. Однако если я перенесу этот цикл в очень простую DLL-библиотеку (которая затем будет правильно зарегистрирована в COM +), мой сценарий будет работать примерно 210 секунд до истечения времени ожидания.

Итак, мой вопрос: как я могу сделать время ожидания сценария таким, как я его просил?

1 Ответ

0 голосов
/ 04 февраля 2011

Насколько я понимаю, ASP-механизм передает управление DLL, когда выполняет вызов метода в DLL. Пока метод не возвращается, ASP на самом деле не вызывает кадры, как только вызов возвращается, он понял, что время превышено, и завершает выполнение скрипта.

...