C# 打开SQL连接时出现算术溢出异常

C# 打开SQL连接时出现算术溢出异常,c#,sql-server,windows-8.1,sqlconnection,C#,Sql Server,Windows 8.1,Sqlconnection,当打开到底层SQL数据库的SQL连接(下面包括堆栈跟踪)时,我遇到了非常奇怪的算术溢出异常。使用哪个版本的服务器没有区别(我已经验证了MS SQL 2005/2008/2012/2014),错误仍然是一样的。已安装Windows Update的所有最新更新和修补程序。操作系统是Windows 8.1/10(两个系统上的情况相同)。服务器安装在本地,通过用户和密码进行连接。连接超时已在15到1000秒的范围内验证 最令人惊讶的是,应用程序工作正常,与服务器通信正常,执行了许多不同的查询,但突然出现

当打开到底层SQL数据库的SQL连接(下面包括堆栈跟踪)时,我遇到了非常奇怪的算术溢出异常。使用哪个版本的服务器没有区别(我已经验证了MS SQL 2005/2008/2012/2014),错误仍然是一样的。已安装Windows Update的所有最新更新和修补程序。操作系统是Windows 8.1/10(两个系统上的情况相同)。服务器安装在本地,通过用户和密码进行连接。连接超时已在15到1000秒的范围内验证

最令人惊讶的是,应用程序工作正常,与服务器通信正常,执行了许多不同的查询,但突然出现了这种异常。我注意到这个异常在一些windows更新后开始出现(不知道是哪个)

我查看了.NET代码,但不知道是什么导致了那里的算术溢出异常

--堆栈跟踪--


我们遇到了同样的问题,它是由
LavasoftTcpService64.dll
引起的。摆脱这个,而不是那个,解决了问题。检查以下文件夹是否存在:
C:\Windows
C:\Windows\System32
C:\Windows\SysWOW64


找到根本原因要归功于。

我遇到了同样的问题,它阻止了Azure Storage Emulator的安装,即AzureStorageEmulator.exe start产生了类似的堆栈跟踪和异常。我可以初始化模拟器,但不能启动它。删除Lavasoft dll并重置winsock堆栈就成功了。所以为我工作,同样归功于Nguyen Quy Hy和这篇文章。

我也有同样的问题。Lavasoft也是一个原因。 我检查了程序和功能,如果有任何Lavasoft程序,我惊讶地发现应用程序称为Lavasoft的WebCompanion。我还发现了一个正在运行的服务LavasoftTcpService

  • 我停止了LavasoftTcpService服务(来自services.msc)
  • 我从程序和功能中卸载了WebCompanion
  • 上述两个dll(C:\Windows\System32和C:\Windows\SysWOW64中的LavasoftTcpService.dll和LavasoftTcpService64.dll)仍然存在。我改变了他们的名字,一个问题消失了
  • 在这些步骤之前,我尝试只更改DLL名称,但在解决localhost问题时遇到了一个问题:系统寻找的不是127.0.0.1,而是0.0.0。Ping向我发送了一条错误消息“Ping请求找不到主机localhost。请检查名称并重试”


    3个步骤解决了问题。

    我确认罪犯是Lavasoft广告感知公司或网络公司。调用SqlConnection.Open()时引发System.OverflowException。仅适用于LocalDB

    有趣的是,如果您的应用程序是单实例应用程序,那么崩溃总是会发生,否则它会随机发生


    解决办法就是乌苏拉所说的。

    我自己刚刚遇到了这个错误,而选项2帮助了我

  • 请右键单击以管理员身份启动命令提示符,然后选择以管理员身份运行

  • 输入此命令以重置网络适配器(以Enter键结束):
    netsh winsock重置

  • 重新启动计算机

  • 请删除这两个文件:
    C:\WINDOWS\system32\LavasoftTcpService64.dll C:\WINDOWS\SysWOW64\LavasoftTcpService.dll(仅适用于64位WINDOWS)


  • 我重命名了文件而不是删除。

    我在通过entityframework创建用户时遇到了相同的问题,我找到了解决方案,并通过执行以下步骤解决了问题

  • 从服务停止LavasoftTcpService64服务 及
  • 从程序和功能中卸载web companion,它就开始工作了 如果问题仍然存在,请重新启动您的机器,希望能有所帮助

  • 我想你不能一直复制这个?它只是一个应用程序还是几个应用程序?代码中是否有
    选中的
    整数加法?你能发布完整的例外情况吗?@Dan Field-它可以随时复制,甚至经常复制-不确定在什么情况下发生,因为这个例外情况发生在我客户的几台机器上。因此,我无法亲自调试代码:/3个不同应用程序中的问题完全相同(堆栈跟踪相同)。@user1666620我的代码中没有类似的问题,因为我没有进行任何与连接相关的计算-异常发生在核心.net代码中。上面显示的跟踪是来自异常的完整堆栈跟踪(在调用SqlConnection上的Open方法之前,以前的操作根本不相关)。顺便说一下,这是一个来自单线程的调用。这不是多线程尝试打开连接的情况。tbh最好使用microsoft支持记录问题。还有其他情况,例如,这是由不同的问题引起的。我应用了这些步骤,我已经检查了几天,似乎有帮助。从那一刻起,问题就没有出现。也许应该向Lavasoft或其他人投诉……谢谢你,我真的无法理解我的同事sql server发生了什么,任何从C#程序打开连接的调用都会导致sql客户端出现荒谬的溢出错误。应该有人给Lavasoft发个短信。我看不出问题的根源,但它只是在工作。谢谢!
    in SNIOpenSyncExWrapper(SNI_CLIENT_CONSUMER_INFO* , SNI_ConnWrapper** )
    in SNINativeMethodWrapper.SNIOpenSyncEx(ConsumerInfo consumerInfo, String constring, IntPtr& pConn, Byte[] spnBuffer, Byte[] instanceName, Boolean fOverrideCache, Boolean fSync, Int32 timeout, Boolean fParallel)
    in System.Data.SqlClient.SNIHandle..ctor(ConsumerInfo myInfo, String serverName, Byte[] spnBuffer, Boolean ignoreSniOpenTimeout, Int32 timeout, Byte[]& instanceName, Boolean flushCache, Boolean fSync, Boolean fParallel)
    in System.Data.SqlClient.TdsParserStateObject.CreatePhysicalSNIHandle(String serverName, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Byte[]& instanceName, Byte[] spnBuffer, Boolean flushCache, Boolean async, Boolean fParallel)
    in System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover)
    in System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover)
    in System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout)
    in System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance)
    in System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData)
    in System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
    in System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
    in System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
    in System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
    in System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
    in System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
    in System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
    in System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
    in System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)
    in System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
    in System.Data.SqlClient.SqlConnection.Open()