Как заставить ELMAH войти в MySQL?
Я искал вокруг с этим вопросом, и почти нет ответов.
Ранее мы использовали ELMAH для входа в таблицу в Microsoft SQL Server, однако мы меняем бэкэнд для использования MySQL (в частности, MariaDB).
Так что все было в порядке, ошибки регистрировались в SQL Server. Я установил пакет ELMAH MySql и изменил строки подключения, чтобы использовать новую таблицу MySQL. Однако, когда выдается ошибка, она не регистрируется. Я не понимаю, почему это происходит.
Это действительно не помогает, что практически нет документации по этому вопросу. Например, вы должны просто установить ELMAH.MySQL самостоятельно? Или это должно идти с моими предыдущими конфигурациями ELMAH?
ELMAH webconfig:
<connectionStrings>
<!-- TODO: Replace the ****'s with the correct entries -->
<add name="elmah-mysql" connectionString="server=web01;UserId=root;Password=Tr@nsf0rmers;database=elmah; CharSet=utf8;Persist Security Info=True" />
</connectionStrings>
<elmah>
<security allowRemoteAccess="0" />
<errorLog type="Elmah.MySqlErrorLog, Elmah.MySql" connectionStringName="elmah-mysql" />
</elmah>
<appSettings>
<add key="elmah.mvc.disableHandler" value="false" />
<add key="elmah.mvc.disableHandleErrorFilter" value="true" />
<add key="elmah.mvc.requiresAuthentication" value="false" />
<add key="elmah.mvc.IgnoreDefaultRoute" value="false" />
<add key="elmah.mvc.allowedRoles" value="*" />
<add key="elmah.mvc.allowedUsers" value="*" />
<add key="elmah.mvc.route" value="elmah" />
<add key="elmah.mvc.UserAuthCaseSensitive" value="true" />
</appSettings>
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>
<modules>
<remove name="FormsAuthentication" />
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
<add name="Glimpse" type="Glimpse.AspNet.HttpModule, Glimpse.AspNet" preCondition="integratedMode" />
</modules>
Обработчик исключений:
public class ElmahHandledErrorLoggerFilter : IExceptionFilter {
public void OnException(ExceptionContext context) {
// Log only handled exceptions, because all other will be caught by ELMAH anyway.
if (context.ExceptionHandled)
ErrorSignal.FromCurrentContext().Raise(context.Exception);
}
}
Это попадает в этот код.
Серьезно, что дает?
1 ответ
Хорошо, мне удалось заставить его работать, выполнив следующее. Я удалил все ссылки на ELMAH. Переустановил их, установил пакет MySQL ELMAH, а затем изменил строки подключения, и все заработало. Просто так.
Следуйте этому руководству: https://dillieodigital.wordpress.com/2011/03/30/elmah-a-quick-start-tutorial-and-guide/
И преобразовать в MySQL, где он использует SQLite.