我正在使用Entity Framework Code First连接到Oracle数据库。每天几次(随机)时间我得到一个"连接请求超时"错误,更详细的消息,"提供者没有返回ProviderManifestToken字符串"。
大多数时候我可以连接数据库没问题。通常,如果我在Visual Studio中停止并启动项目,则下次启动项目时错误将消失。
我已与我们的DBA和网络团队核实过,网络或数据库可用性没有明显问题。
我在互联网上的搜索表明上述错误信息与我的连接字符串有关,但正如我所说,连接在大多数情况下都能正常运行。
我可以做些什么来从我的项目中诊断出可能导致这种间歇性问题的原因?
谢谢! 马丁
答案 0 :(得分:0)
我可以确认我也见过这个。我也正在寻找明确的答案。
最外层的异常是EntityFramework.dll中出现'System.Data.Entity.Core.ProviderIncompatibleException'
带有内部异常消息 “提供程序未返回ProviderManifestToken字符串。”
带有内部异常消息 “连接请求超时”
通过声明类型:名称= PoolManager 3 FullName = OracleInternal.ConnectionPool.PoolManager 3
我注意到这种间歇性错误行为的最佳方法是,当DBContext通过OnModelCreating时,我只得到了这些错误。也许“连接请求超时”合法地花费的时间超过了15秒的默认连接超时?
如果问题出现,我可能会尝试添加其他ConnectionString变量,例如Validate Connection = True;或关闭Pooling或将Connection Lifetime限制为测试。
抱歉,我还没有完整的答案。