2

我们有一个使用 .NET Entity Framework 4 连接到 MySql 的应用程序。我现在已经在几台开发机器(Windows 7)上进行了设置,现在正在部署到 Windows 2008 R2,但是在尝试从应用程序访问数据库时抛出异常。

有两种连接字符串,一种用于 ADO.NET,一种用于 Entity Framework。

我们正在为 .NET v 6.4.4 使用 MySql 连接器

例外是:

“底层提供商在 Open 上失败。” - “从流中读取失败。”

在谷歌上搜索异常时,大多数帖子都与使用 SqlServer 的实体框架有关,在这些情况下,问题看起来与身份验证有关。由于我们在这里使用 root 用户凭据连接,如果这是一个身份验证问题,我不确定如何诊断。其他应用程序使用相同的凭据连接到数据库。

连接字符串是:

<add name="AppEntities" connectionString="metadata=res://*/OrmApp.AppEntities.csdl|res://*/OrmApp.AppEntities.ssdl|res://*/OrmApp.AppEntities.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost;User Id=root;password=*********;Persist Security Info=True;database=app_staging;Convert Zero Datetime=True&quot;" providerName="System.Data.EntityClient" />

<add name="AppAdoNet" connectionString="server=localhost;User Id=root;password=*********;Persist Security Info=True;database=app_staging;Convert Zero Datetime=True" providerName="System.Data.MySql" />

如果有人在 MySql 上遇到过此类问题,或者可以就如何诊断我认为是在数据库端的问题提出建议,那将不胜感激。

4

1 回答 1

3

最后一个奇怪的问题。在这里回答http://www.randombytes.me/2012/06/mysql-connector-net-reading-from-stream.html

更新了帖子链接。

概括:

生产服务器使用 IIS 设置“启用 32 位应用程序”设置为“真”,恢复为“假”解决了该问题。显然,您需要检查应用程序中的另一个组件是否需要将此标志设置为“True”。

于 2012-06-11T16:47:55.820 回答