我即将开枪自杀。花了几周时间试图解决这个问题。我们有一个ASP.NET MVC 4 Web应用程序,它使用SQL Server 2012和Entity Framework作为ORM和Unity for IoC。 Web应用程序托管在Amazon EC2上。我开始得到“物理连接不可用”的例外。它每天发生几次。我搜索了很多文章和论坛,并尝试了所有可能的建议:
当异常发生时,恢复应用程序的唯一方法是重启服务器,这是非常糟糕的!
这是完全例外:
将请求发送到服务器时发生传输级错误。 (提供者:会话提供者,错误:19 - 物理连接不可用)
我现在确认,通过更改服务器上的连接字符串来使用“。”对于数据源而不是域名,异常似乎已经消失。以前用于工作的域名非常奇怪。必须是SQL Server上的某种更新
我知道这是一个老帖子,但我最近遇到了这个错误的可怕时间,并且在任何博客上都没有解决方案。
关于我的问题的具体细节:具有目标.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)!!我回滚了这个更新,一切都像魅力!
我失去了两天的开发工作处理这个问题,希望这篇文章可以帮助别人避免这种痛苦!
我也遇到了这个错误。在我的情况下,问题是数据库服务器关闭了连接,但连接在我的应用程序的连接池中仍然有效。
重置应用程序池使我的应用程序重新启动并运行。
删除MaxDegreeOfParallelism后出现此错误,默认设置为-1或设置db.Database.CommandTimeout = 0时没有限制。
建议将MaxDegreeOfParallelism明确设置为安全值。
另一种情况:当应用程序与服务器数据库通信时,网络连接甚至停机几秒钟。
数据库连接由数据库服务器关闭。该连接在您的应用的连接池中仍然有效;因此,当您拾取共享连接字符串并尝试执行它时,无法访问数据库。如果您正在开发Visual Studio,只需关闭任务栏上的临时Web服务器即可。
如果它在生产中发生,重置您的网站的应用程序池应该回收连接池。
可能是由于入侵防御系统的更新。
请尝试参考以下主题:http://forums.asp.net/t/1908976.aspx
希望它可以提供帮助。
这对我来说是一个DNS错误,诊断因为在连接字符串中使用服务器名称产生了错误,但使用IP工作正常。打开cmd提示符,运行快速ipconfig /flushdns
以查看它是否有帮助。
我有两天相同的错误!甚至不知道为什么突然发生了?!!
重新启动所有SQL Server服务。重新启动我的SQLServer实例。将这些道具添加到我的DEF连接字符串中..
Connection Lifetime=30; Max Pool Size=350;Connection Timeout=30;Connection Lifetime=0;ConnectRetryCount=3;ConnectRetryInterval=10;