最近给一个客户做一个项目,其中要与另外一个系统进行数据交换,而那个系统使用的是MySql,因此,从网上下载了一个MySql Connector,由于以前没有用过MySql,而且这个MySql服务器位于互联网上,因此,尽管只是简单的SELECT、INSERT、UPDATE语句,自己也测的比较仔细,最后,非常自信的把软件拿过去执行。
当然,结果是出现了意料之外异常:"System.Transactions.Diagnostics.DiagnosticTrace"类型初始值设定项引发异常,而且是在最基本的连接测试的时候出现的,即MySqlConnection.Open()的时候就立即出现该异常。
郁闷自是不用提了,好在背着笔记本,带着源代码,于是就在笔记本上进行调试,但是一切正常,于是怀疑客户的机器环境问题(我是Vista,客户运行该程序是在Win2003服务器上)。但最终还是否定了——新的IBM服务器,Win2003企业版+各种补丁的机器实在没有理由怀疑。
然后又怀疑是兼容性的问题(程序使用了.NET 3.5,并使用WPF做界面),于是去找了若干个版本的Connector,但是依然如故!于是只好把自己的笔记本放在哪里,先把今天的活儿干了。
晚上回来,被这事闹得睡不着了,于是又去找了Connector的源代码,又认真地跟踪了一下出错信息,发现了秘密:
原来,MySqlConnection要读取应用程序的配置文件!
而恰巧,我也使用了与主程序同名的.config自定义配置文件,但由于里面保存了很多连接信息,出于安全的原因,整个文件的内容是被我加了密的,但MySqlConnection把它当成正常的配置文件读取,这个文件内容当然是无法读取了!
于是出现了上面的错误,屡试不爽!
这个问题可能很少会遇到,但一旦遇到,确实很难想到会是这种原因!
写个帖子,给可能会遇到这种情况的朋友提个醒。
转载于:https://www.cnblogs.com/yuxs/archive/2008/05/27/1208058.html