我们有一个使用.NET Entity Framework 4连接到MySql的应用程序。我现在已在几台开发机器(Windows 7)上进行了设置,现在正在部署到Windows 2008 R2,但在尝试从应用程序访问数据库时会抛出异常。
有两个连接字符串,一个用于ADO.NET,另一个用于Entity Framework。
我们正在使用.NET v 6.4.4的MySql连接器
例外是:
“基础提供商在Open上失败了。” - “从溪流中读书 失败了。“
在Google上搜索异常时,大多数帖子都与使用SqlServer的Entity Framework有关,在这些情况下,问题似乎与身份验证相关。由于我们使用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="server=localhost;User Id=root;password=*********;Persist Security Info=True;database=app_staging;Convert Zero Datetime=True"" 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上遇到过这样的问题,或者可以建议如何诊断我假设在数据库端的问题,那将不胜感激。
答案 0 :(得分:3)
最终出现奇怪的问题。这里回答http://www.randombytes.me/2012/06/mysql-connector-net-reading-from-stream.html
更新了帖子链接。
<强>要点:强>
生产服务器使用IIS设置“启用32位应用程序”设置为“True”,恢复为“False”解决了问题。显然,您需要检查应用程序中的另一个组件是否要求将此标志设置为“True”。