我收到一个SQL Server错误:
从服务器接收结果时发生传输级错误.(提供者:共享内存提供者,错误:0 - 句柄无效.)
我正在运行Sql Server 2008 SP1,Windows 2008 Standard 64位.
这是一个.Net 4.0 Web应用程序.它发生在向服务器发出请求时.这是间歇性的.知道我怎么解决它?
小智 92
数据库连接由数据库服务器关闭.该连接在您的应用的连接池中仍然有效; 因此,当您拾取共享连接字符串并尝试执行它时,无法访问数据库.如果您正在开发Visual Studio,只需关闭任务栏上的临时Web服务器即可.
如果它在生产中发生,重置您的网站的应用程序池应该回收连接池.
Sim*_*mmo 17
在命令提示符处尝试以下命令:
netsh interface tcp set global autotuning=disabled
Run Code Online (Sandbox Code Playgroud)
这将关闭网络堆栈的自动缩放功能
jth*_*_92 12
对于那些不使用IIS的人,我在使用Visual Studio 2010进行调试时遇到了这个问题.我结束了所有调试器进程:WebDev.WebServer40.EXE解决了这个问题.
查看MSDN 博客,其中详细说明了此错误:
\n\n\n\n删除连接
\n\n连接池程序会在连接长时间空闲后,或者连接池程序检测到与服务器的连接已断开时,将其从池中删除。
\n\n请注意,只有在尝试与服务器通信后才能检测到断开的连接。如果发现连接不再连接到服务器,则会将其标记为无效。
\n\n仅当无效连接被关闭或回收时,才会从连接池中删除它们。
\n\n如果存在到已消失的服务器的连接,则即使连接池程序未检测到已断开的连接并将其标记为无效,也可以从池中提取该连接。
\n\n之所以出现这种情况,是因为检查连接是否仍然有效的开销会导致另一次与服务器的往返,从而消除池化器的好处。
\n\n发生这种情况时,第一次尝试使用连接时将检测\n连接已被切断,并引发异常。
\n\n基本上你看到的是最后一句中的异常。
\n\n从连接池中获取连接,应用程序不知道物理连接已消失,尝试使用它是在假设物理连接仍然存在的情况下进行的。
\n\n你得到了例外。
\n\n造成这种情况有几个常见原因。
\n\n\n
\n\n- 服务器已重新启动,这将关闭现有连接。
\n在这种情况下,请查看 SQL Server 日志,通常位于:\n C:\\Program Files\\Microsoft SQL Server\\\\MSSQL\\LOG
\n\n如果启动时间戳非常近,那么我们可以怀疑这就是导致错误的原因。尝试将此时间戳与异常时间相关联。
\n\n2009-04-16 11:32:15.62 服务器在文件\n \xe2\x80\x98C:\\Program Files\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\LOG\\ERRORLOG\ 中记录 SQL Server 消息xe2\x80\x99。
\n\n\n
\n\n- 有人或某物杀死了正在使用的 SPID。
\n再次查看 SQL Server 日志。如果您发现了杀戮,请尝试将此时间戳与异常时间相关联。
\n\n2009-04-16 11:34:09.57 spidXX 进程 ID XX 被主机名 xxxxx、主机进程 ID XXXX 杀死。
\n\n\n
\n\n- 再次发生故障转移(例如在镜像设置中),请查看 SQL Server 日志。
\n如果存在故障转移,请尝试将此时间戳与异常时间相关联。\n
\n\n2009-04-16 11:35:12.93 spidXX 镜像数据库 \xe2\x80\x9c\xe2\x80\x9d 正在将角色从 \xe2\x80\x9cPRINCIPAL\xe2\x80\x9d 更改为 \xe2\x80\x9cMIRROR\ xe2\x80\x9d 由于\n 故障转移。
\n
传输级别错误通常与到sql server的连接断开有关……通常是网络连接。
通常,当SQL查询运行时间过长时,将引发Timeout Expired。
很少有这样的选择:
| 归档时间: |
|
| 查看次数: |
220822 次 |
| 最近记录: |