Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将ELMAH日志创建到MySQL?_Mysql_Asp.net Mvc_Logging_Elmah - Fatal编程技术网

如何将ELMAH日志创建到MySQL?

如何将ELMAH日志创建到MySQL?,mysql,asp.net-mvc,logging,elmah,Mysql,Asp.net Mvc,Logging,Elmah,我们已经与ASP.NET MVC 3集成,作为记录应用程序错误的一种方法。但是,我们还没有持久化日志。为此,我们希望将ELMAH的日志条目存储在MySQL中,因为我们已经将此数据库服务器的一个实例用于其他目的 我们如何配置ELMAH,使其使用MySQL保存日志?您可以在MySQL上安装NuGet软件包ELMAH PM>安装包elmah.mysql 您必须对其进行配置。来自Elmah.MySql.txt,它是包的一部分 请注意,为了完成ELMAH.MySql的安装,您必须执行以下操作: 确保您已从

我们已经与ASP.NET MVC 3集成,作为记录应用程序错误的一种方法。但是,我们还没有持久化日志。为此,我们希望将ELMAH的日志条目存储在MySQL中,因为我们已经将此数据库服务器的一个实例用于其他目的


我们如何配置ELMAH,使其使用MySQL保存日志?

您可以在MySQL上安装NuGet软件包
ELMAH

PM>安装包elmah.mysql

您必须对其进行配置。来自Elmah.MySql.txt,它是包的一部分

请注意,为了完成ELMAH.MySql的安装,您必须执行以下操作:

  • 确保您已从安装了最新的MySQL连接器(这是可选的,因为我们已经包含MySQL.Data.dll,如果您下载了最新的连接器,则不需要我们的版本)
  • 对数据库运行Elmah.MySql.sql脚本
  • 使用elmah中的正确设置编辑web.config以连接到数据库
  • 更多信息

    我就是这样配置elmah来写入MySQL的。在Visual Studio中

  • 安装Elmah Nuget软件包
  • 安装Elmah.MySQL Nuget包
  • 这两个安装对web.config文件进行了一些更改,以下是要查找的相关部分:

    <elmah>
    <security allowRemoteAccess="false" />
    <errorLog type="Elmah.MySqlErrorLog, Elmah" connectionStringName="elmah-mysql" />
    </elmah>
    
    
    
    这需要一个新的连接字符串。。。elmah已经为我添加了模板,我只需要将正确的凭据放入:

    <connectionStrings>
    <add name="DevDB" connectionString="Server=localhost; Database=NZ; Uid=myuserid; Pwd=mypwd" providerName="MySql.Data.MySqlClient"/>
    <add name="elmah-mysql" connectionString="Server=localhost; Database=elmah; Uid=myuserid; Pwd=mypwd" providerName="MySql.Data.MySqlClient" />
    </connectionStrings>
    
    
    并运行脚本来创建表和过程。还要注意,这些脚本默认情况下,创建一个名为elmah的DB。。。如果要更改数据库名称,请确保它与上面连接字符串中的数据库一致
    我要做的就是让它运行

    注意:需要注意的一件事是在上面的连接字符串中使用小写字符作为数据库名称,因为MySQL数据库名称是小写的。。。起初它确实对我有用,但后来它坏了,我不得不改变它

    <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
    </entityFramework>
    
    <system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data.MySqlClient" />
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
    </system.data>