最初,我的代码在控制台应用程序上运行良好,但在Windows服务上不起作用。我在 catch 中创建了文本文件以检查代码是否连接到 MySQL,并观察到这是实际问题。可能是什么原因?
我尝试创建系统 DSN 和 UserDSN,但它们都不起作用。我的连接字符串是:
conn.ConnectionString = "DSN=TrAudit_SQL;Uid=marium;Pwd=marium;";
try
{
conn.Open();
}
catch
{
return (-1);
}
我花了几天时间解决同样的问题。问题核心似乎非常简单:项目的"首选 32 位..."的构建选项应与使用的驱动程序版本匹配。因此,在 64 位操作系统上使用 32 位驱动程序版本时,应检查 oprion。或者,可以直接在 .csproj 文件中将其设置为:
<PropertyGroup ...>
<DebugSymbols>true</DebugSymbols>
...
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>