Обработка ошибок в Classic Asp без тайм-аута - PullRequest
3 голосов
/ 29 июля 2009

На классической странице asp мне нужно отловить описание ошибки и вставить в таблицу в базе данных. когда я использую «по ошибке возобновить следующее», я получаю сообщение об ошибке тайм-аута следующим образом:

Максимальное количество времени для Сценарий для выполнения был превышен. Вы можно изменить этот предел, указав новое значение для свойства Server.ScriptTimeout или путем изменения значение в администрации IIS инструменты

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

Ответы [ 3 ]

6 голосов
/ 29 июля 2009

Я считаю, что ваш вопрос «Как перехватить ошибку Script Timeout и записать ее в базу данных». Тогда ответом будет то, что вы не можете сделать это при возобновлении после ошибки далее.

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

Кроме того, в общем случае, если вы не можете продолжать делать что-то разумное (и это не включает ведение журнала) в вашем сценарии, нет смысла пытаться использовать On Error Resume Next, чтобы перехватить ошибку.

Вместо этого создайте новый сценарий ASP, который должен запускаться всякий раз, когда вы получаете ошибку сценария (это будет включать в себя ошибку времени ожидания сценария). В диспетчере IIS откройте диалоговое окно свойств приложений и выберите вкладку «Пользовательские ошибки». Отредактируйте обработчик для ошибки HTTP 500; 100 и измените его на URL и путь этого сценария ASP.

Теперь вы можете поместить свой код регистрации ошибок в этот скрипт ASP. Вы можете получить доступ к ошибке, выдаваемой сбойной страницей ASP, с помощью метода Server.GetLastError. Вы также можете настроить эту страницу, чтобы отправить что-то дружественное пользователю.

0 голосов
/ 29 июля 2009

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

0 голосов
/ 29 июля 2009

Почему бы не исследовать / устранить проблему тайм-аута, а не попытаться поймать исключение? В то время как вы должны регистрировать ошибки, вы должны также выяснить, почему это происходит в первую очередь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...