我使用的平台是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构建一样。 ..
需要帮助!
亲切的问候......