2012-01-16 4 views
2

Мы уже используем ELMAH для регистрации ошибок на веб-сайте ASP.NET MVC, который у нас есть ... но наш основной сайт по-прежнему является классическим asp, и я начал создавать структуру обработки ошибок/ведения журнала для этого веб-сайта, но я подумал, что было бы здорово, если бы мы могли поддерживать протоколы ошибок во всех наших приложениях. Я хотел бы использовать ту же структуру базы данных ... возможно, даже хранить ошибки из разных исходных приложений в одной таблице, а затем фильтровать по источникам. Я подумал, может быть, что я мог бы обратиться к DLL ELMAH из нашего классического кода сервера asp vb для регистрации информации об ошибках. Я взглянул на веб-сайт ELMAH ... и затем я взглянул на AIRBRAKE - http://airbrake.io/pages/home - но не мог понять, как это будет или может быть сделано с классической веб-страницы asp.Ошибки ELMAH и классический Asp

Если у кого есть опыт работы с этим или есть какие-либо предложения, которые были бы полезными, я был бы признателен ... спасибо.

ответ

2

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

Затем, при обновлении, используйте те же настройки, и ваш журнал будет без проблем между двумя версиями.

+0

Спасибо за возможное решение. Но разве вы все еще не сталкиваетесь с целым рядом проблем, связанных с обменом информацией между классическими asp и .net? Сессии и т. Д. Как нужно хранить ваши сеансы в базе данных или использовать объект com для преобразования между ними? Надеюсь, что это проще ... :) –

3

Вдохновленный ответом Билла Мартина, я собрал доказательство концепции, которое демонстрирует эту работу. Существует классический обработчик ASP, который вызывает Server.GetLastError(), кодирует результат как JSON и POSTs его в .NET HttpHandler, который затем записывает его в ELMAH вместе со всеми обычными ошибками .NET.

Код и ноты на https://github.com/dylanbeattie/ElmahASP

Смежные вопросы