Пример, который вы использовали, где комментарий код приложения здесь , не может не использоваться с ASP.NET classic, поскольку реальный запуск приложения управляется IIS.
SentrySdk.Init
возвращает объект, который реализует IDisposable
и используется для корректного завершения работы SDK. Это необходимо для того, чтобы гарантировать, что внутренняя очередь событий сбрасывается до закрытия приложения. Таким образом, вы не потеряете ни одного события.
В вашей текущей настройке в конце метода Configure
SDK будет отключен, потому что вы завернули его в блок using
. Таким образом, он будет инициализирован и немедленно закрыт.
Что вам нужно сделать, это вызвать Init
во время запуска и избавиться от объекта, который он возвращает при завершении работы приложения. Кроме того, добавьте SentrySdk.CaptureException
в обработчик событий global.asax
* Application_Error
.
Sentry имеет пример на GitHub о том, как использовать SDK с «классическим» ASP.NET и global.asax
здесь , но важными частями являются следующие:
protected void Application_Start()
{
// Set up the sentry SDK
_sentry = SentrySdk.Init(o =>
{
o.Dsn = new Dsn(ConfigurationManager.AppSettings["SentryDsn"]);
});
}
protected void Application_Error()
{
var exception = Server.GetLastError();
// Capture unhandled exceptions
SentrySdk.CaptureException(exception);
}
protected void Application_End()
{
// Close the Sentry SDK (flushes queued events to Sentry)
_sentry?.Dispose();
}