Как заставить 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.

Другие вопросы по тегам