Я пытаюсь запустить приложение ASP.NET, которое регистрирует исключения в базе данных. Я использую Application_Error, чтобы поймать исключение.Application_Error() not firing
Перед добавлением строки подключения, чтобы проверить мой код (класс Logger и код в Global.asax), я попытался зарегистрировать ошибку в средстве просмотра событий Windows. Это работает так, как ожидалось.
Но после добавления строки подключения в файл Web.config и добавления кода ADO.NET я попытался запустить приложение. Но я получаю желтый экран смерти: D
Я не знаю, что не так с моим кодом. Я только модифицировал элемент connectionStrings в файле Web.config и добавил код ADO.NET.
Вот код.
Это код веб-формы в событии Page_Load. Файл Countries.xml отсутствует, и ожидается, что он вызовет ошибку.
DataSet dataset = new DataSet();
dataset.ReadXml(Server.MapPath("~/Countries.xml"));
GridView1.DataSource = dataset;
GridView1.DataBind();
Application_Error
Exception exception = Server.GetLastError();
if (exception != null)
{
Logger.Log(exception);
Server.ClearError();
Server.Transfer("~/Errors.aspx");
}
Web.config
<configuration>
<connectionStrings>
<add name="DBCS" connectionString="Data Source=.;database=Sample;Integrated Security=SSPI" providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.5.2" />
</system.web>
</configuration>
Я пытался отладки, помещая точку останова в методе Application_Error в Global.asax, но управление никогда не доходит до этой точки. Исключение запускается из события Page_Load. Ошибок компиляции в коде класса Logger нет. Кроме того, я не хочу использовать маршрут customErrors для решения этой проблемы.
Заранее спасибо.
Это ссылка на код: https://drive.google.com/folderview?id=0B5K22Q9r50wXU0VOQmJKVHBoaDg&usp=sharing
Вы реализующий страницу ошибки тоже? Вы подтвердили, что у вас нет других утверждений try-catch, которые, возможно, попали в исключение раньше вашего кода Application_Error? –
Привет @Ephraim, да, я реализую страницу пользовательской ошибки: Errors.aspx. В моем коде нет другого блока catch catch. Исключение не обрабатывается, и я вижу желтый экран смерти. – Nachiket