当前位置: 首页 > 编程语言 > C#

调用newSqlConnection()挂起程序分享

时间:2023-04-10 19:13:05 C#

调用newSqlConnection()挂起程序这让我很难过。我什至没有尝试连接到数据库。当这段代码到达我实例化一个新的SqlConnection对象的行时,它挂起而不是抛出异常或任何东西。我试过为2.0编译它。3.5和4.0,都挂了。当然它也适用于我的机器和你的机器。但我试图在WindowsServer2008x64服务器上运行这段代码,但它不会让步。//example.cs使用系统;使用系统数据;使用System.Data.SqlClient;公共类MainClass{publicstaticvoidMain(string[]args){Console.WriteLine("start");SqlConnectionconn=newSqlConnection();//挂在这里Console.WriteLine("finish");//永远不会在这里。}}编译(2.0):c:\Windows\Microsoft.NETFrameworkv2.0.50727\csc.exeexample.cs可能是性能计数器坏了,这就是问题所在。我遇到了这个问题,我使用Procmon来检测发生了什么。我的.NET应用程序在加载性能监视器“.NETDataProviderforSqlServer”的注册表项时挂起我使用以下命令卸载计数器以使其工作:unlodctr“.NETDataProviderforSqlServer”您的安装必须中断。代码并没有真正做任何重要的事情,所以没有理由挂在那里。SqlConnection构造函数执行此操作:publicSqlConnection(){this.ObjectID=Interlocked.Increment(refSqlConnection._objectTypeCount);根据();GC.SuppressFinalize(这个);this._innerConnection=DbConnectionClosedNeverOpened.SingletonInstance;因此,它将增加变量,将其复制到属性中,调用基本构造函数,从终结队列中删除对象,并复制引用。就这样。基础(DbConnection)构造函数执行此操作:protectedDbConnection(){}所以这里实际上与实际的数据库连接无关。所有这些都是在您实际打开连接时完成的。也有可能您的程序在第一次Console.WriteLine调用后挂起,甚至没有创建SqlConnection对象。建议分为2个步骤:publicstaticvoidMain(string[]args){Console.WriteLine("start");使用(SqlConnectionconn=newSqlConnection()){Console.WriteLine("middle");}Console.WriteLine("完成");这台计算机上的任何其他应用程序能否生成任何其他SqlConnection对象?这显然是一个环境问题,因为您发布的代码可以在任何其他机器上运行。怀疑它已经越过某个临界点,使用将有助于在未来抵御这种情况。我遇到了同样的问题,在我1.将目标框架从4.0更改为3.5,以及2.在VisualStudio中将调试设置更改为x64后,它开始工作。解决方案!我在很多电脑上都遇到了同样的问题。Framework4.5.2以管理员身份在CMD中运行此命令:unlodctr".NETDataProviderforSqlServer"您可能需要手动输入它,因为复制意大利面条不适用于引号。资料来源:http://askproblem.com/question/calling-new-sqlconnection-hangs-program/我知道这篇文章很旧,但也许其他人会收到此错误。它可能是一个损坏的性能计数器,这就是问题所在。我遇到了这个问题,我使用Procmon来检测发生了什么。我的.NET应用程序在加载性能监视器“.NETDataProviderforSqlServer”的注册表项时挂起C#学习教程:调用newSqlConnection()暂停程序分享所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文来自网络收集,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: