Можно ли открепить удаленный сервер IIS ASP после того, как исключение повесит сеанс? - PullRequest
1 голос
/ 19 мая 2010

Я кодирую приложение в классическом ASP, которое обращается к 2 базам данных Access. У меня была страница, над которой я работал, выдавало исключение, которое является нормальным во время разработки и не вызывает длительных проблем. На этот раз, однако, после исключения любая попытка открыть любую из баз данных заморозит сеанс с бесконечным временем ожидания сценария. Если я удаляю файл cookie сеанса, я снова получаю доступ к страницам ASP, пока не попытаюсь снова открыть базу данных.

База данных, которая была открыта при возникновении исключения, остается открытой. Существует файл блокировки LDB, и я не могу переименовать или удалить файл LDB или MDB, хотя я могу загрузить файл MDB с FTP. Вторая база данных доступа не открыта, но любая попытка прочитать это также приводит к зависанию сеанса.

Доступ к HTML-страницам в порядке.

Сайт размещен на хосте, и им это не интересно («Проблема с кодированием = Ваша проблема», хотя мой сайт остается мертвым, я подозреваю, что до следующей перезагрузки, когда бы это ни было).

Вот дамп с соответствующей страницы ASP, который выдал исключение:

Active Server Pages error 'ASP 0115'
Unexpected error

/translatestats.asp

A trappable error (C0000005) occurred in an external object. The script cannot continue running.
Active Server Pages error 'ASP 0240'
Script Engine Exception

/translatestats.asp

A ScriptEngine threw exception 'C0000005' in 'IActiveScript::Close()' from 'CActiveScriptEngine::FinalRelease()'.

Можно ли каким-либо образом открепить сайт / принудительно закрыть базу данных?

Ответы [ 2 ]

0 голосов
/ 20 мая 2010

IIS6 как минимум перезапускает пулы приложений каждые 26 часов.
(https://serverfault.com/questions/108898/restart-iis-app-pool-automatically)

попробуйте этот скрипт для перезапуска.
http://forums.iis.net/t/955382.aspx

0 голосов
/ 20 мая 2010

Процесс размещения вашего сайта вошел в неизвестное состояние. Исключение C0000005 является нарушением доступа.

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

...