无法摆脱"物理连接不可用"的例外

fen*_*222 25 sql-server asp.net-mvc entity-framework ioc-container unity-container

我即将开枪自杀.花了几周时间试图解决这个问题.我们有一个ASP.NET MVC 4 Web应用程序,它使用SQL Server 2012和Entity Framework作为ORM和Unity for IoC.Web应用程序托管在Amazon EC2上.我开始得到"物理连接不可用"的例外.它每天发生几次.我搜索了很多文章和论坛,并尝试了所有可能的建议:

  • 尝试从连接字符串"Polling = False"中删除池
  • 尝试限制池大小和连接生命周期
  • 尝试将Unity的LifetimeManager更改为HierarchicalLifetimeManager,PerRequestLifetimeManager.还确保在请求结束后处理实体上下文
  • 删除了所有TransactionScope引用

当异常发生时,恢复应用程序的唯一方法是重启服务器,这是非常糟糕的!

这是完全例外:

将请求发送到服务器时发生传输级错误.(提供者:会话提供者,错误:19 - 物理连接不可用)

fen*_*222 7

我现在确认,通过更改服务器上的连接字符串来使用"." 对于数据源而不是域名,异常似乎已经消失.以前用于工作的域名非常奇怪.必须是SQL Server上的某种更新


小智 6

我知道这是一个老帖子,但我最近遇到了这个错误的可怕时间,并且在任何博客上都没有解决方案.

关于我的问题的具体细节: 具有目标.NET framework 4.5的ASP.NET Web应用程序,MVC版本.5.2.3,实体版 6.0.0.0,MS SQL Server Express 2014.我的开发系统运行的是Windows 7 Pro SP1.

症状:突然出现错误(我已经在这个项目上工作了将近三个星期,当时它运行良好).当我启动应用程序时,在记录用户之后,实体框架ALLWAYS发送到数据库的第二个查询生成错误" 从服务器接收结果时发生了传输级错误.(提供者:会话提供者,错误: 19 - 物理连接不可用) ".查询哪个表并不重要.错误不是间歇性的,重启服务器没有帮助.使用IIS和IIS express发生错误.

SqlConnection.ClearAllPools()仅阻止了一个查询的错误,我不想在程序中的每个Entity调用之前添加它.我尝试了所有博客上的每一个解决方案都没有用,甚至是其他传输级错误的解决方案.我为我的引用回滚了包更新,试图恢复到工作状态.没有!

解决方案:罪魁祸首是Microsoft SQL Server 2014 SP1安全更新(KB3070446)!! 我回滚了这个更新,一切都像魅力!

我失去了两天的开发工作处理这个问题,希望这篇文章可以帮助别人避免这种痛苦!


Mah*_*yed 5

我已经有2天了同样的错误!甚至不知道为什么会突然发生?

  • 结果是:我遇到了网络身份验证访问问题(因为我的 WiFi 连接).. 一旦我断开/禁用我的 WiFi 并仅通过电缆(安全且稳定)连接进行连接.. 错误就消失了。 。

  • 我还做了以下工作,例如:

重新启动所有 SQL Server 服务。重新启动 My SQLServer 实例。将这些道具添加到我的 DEF 连接字符串中。

Connection Lifetime=30; Max Pool Size=350;Connection Timeout=30; ConnectRetryCount=3;ConnectRetryInterval=10; 
Run Code Online (Sandbox Code Playgroud)