遇到log4net和MySQL的问题

时间:2013-12-19 15:05:36

标签: mysql .net vb.net visual-studio-2012 log4net

我使用的平台是Visual Basic 2012和Visual Studio professional 2012 ......

我的项目中安装了log4net - 版本为1.2.13,通过nuGet数据包管理器安装。

通过测试log4net,它似乎正常工作。

但是由于我已经安装了log4net,所有与MySQL相关的操作都不再需要了。 我还通过NuGet数据包管理器安装了MySQL连接器,版本为6.7.4

我肯定追溯到与log4net安装有关的问题,因为当我从app.config中完全删除与log4net相关的xml时,所有MySQL操作都会再次运行,因为它们应该正常工作。

来自app.config的log4net代码:

<configSections>
 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
 <root>
  <level value="ALL"/>
  <appender-ref ref="RollingLogFileAppender"/>
 </root>
 <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
 <file value="logfile.txt"/>
 <appendToFile value="true" />
 <rollingStyle value="Size" />
 <maxSizeRollBackups value="5" />
 <maximumFileSize value="10MB" />
 <staticLogFileName value="true" />
 <layout type="log4net.Layout.PatternLayout">
  <conversionPattern value="%date %-5level %logger.%M[%thread]: %message%newline"/>
 </layout>
 </appender>
</log4net>

每个班级顶部的log4net:

Private Shared ReadOnly log As log4net.ILog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)

AssemblyInfo.vb中的log4net代码:

<Assembly: log4net.Config.XmlConfigurator(Watch:=True)> 

DB Query示例:

Private Sub btnMySQLScalarQuery_Click(sender As Object, e As EventArgs) Handles     btnMySQLScalarQuery.Click

    Dim DatabaseAccessObject As New classDatabaseAccess With {.MySQLIpAdress = "10.140.140.220", .MySQLUsername = "admin", .MySQLPassword = "adminxyz", .MySQLDBName = "sensors", .ErrorMsg = True}

    Try
        Using command As New MySqlCommand
            Using connection As New MySqlConnection((DatabaseAccessObject.GetMySQLConnectionString()))
                **connection.Open()**
                command.Connection = connection
                command.CommandText = "SELECT COUNT(*) FROM wims_detections WHERE id > @start AND id < @end"
                command.Prepare()
                command.Parameters.AddWithValue("@start", 100)
                command.Parameters.AddWithValue("@end", 1000)
                connection.Close()
            End Using

            MessageBox.Show(DatabaseAccessObject.ScalarQuery(command))
        End Using
    Catch ex As Exception

    End Try
End Sub

这是我得到的错误消息,当由于app.config中包含代码而激活log4net时:

“MySql.Data.MySqlClient.Replication.ReplicationManager”的类型初始值设定项生成异常。

我没有使用ReplicationManager ......!但它认为ReplicationManager在某种程度上是log4net的问题......

错误发生在行中,我正在努力打开数据库连接... connection.open()

我必须在这里注意,我在项目中也使用了SQLite,严格的SQLite绝对不会受到这个问题的影响 - 即使我很难建立MySQL Querys / NonQuerys / Transactions,就像我用SQLite构建一样。 ..

需要帮助!

亲切的问候......

0 个答案:

没有答案