C# 在.NET 4.5.1上运行的.NET 4.0应用程序在System.Data.dll中崩溃,并在抛出System.Data.SqlClient.SqlException后挂起
当我尝试在只安装了.NET 4.5.1的计算机上运行针对.NET 4.0 framework的.NET应用程序时。该应用程序通常在同一网络域内的cca 50台计算机上运行,也在一台安装了.NET 4.5.1的VS 2012计算机上运行。只有在一台特定的机器上它才会崩溃 我在以下代码中遇到“应用程序无响应”崩溃:C# 在.NET 4.5.1上运行的.NET 4.0应用程序在System.Data.dll中崩溃,并在抛出System.Data.SqlClient.SqlException后挂起,c#,linq-to-sql,.net-4.5,system.data,C#,Linq To Sql,.net 4.5,System.data,当我尝试在只安装了.NET 4.5.1的计算机上运行针对.NET 4.0 framework的.NET应用程序时。该应用程序通常在同一网络域内的cca 50台计算机上运行,也在一台安装了.NET 4.5.1的VS 2012计算机上运行。只有在一台特定的机器上它才会崩溃 我在以下代码中遇到“应用程序无响应”崩溃: //This line actually opens the connection to SQL Server var q = (from vlu in data.QVyrobniLin
//This line actually opens the connection to SQL Server
var q = (from vlu in data.QVyrobniLinkaUzivateles where (vlu.WinLogin == Program.UserName) orderby vlu.Cislo select vlu);
MessageBox.Show("A"); //A is displayed
try
{
MessageBox.Show(q.ToString()); //Here I get the exception
LoggedInUser = (q).ToArray();
}
catch (Exception ex)
{
//--------------------------------------------------------------
MessageBox.Show(ex.Message);
//Application hangs here sometimes displayng the entire exception text,
//sometimes displaying only part of it, sometimes displaying nothing
//When I do not catch this exception then there is sometimes just unhandled exception without any detail in the Event log
//--------------------------------------------------------------
MessageBox.Show(ex.StackTrace);
}
MessageBox.Show("B"); //B is never displayed
然后应用程序挂起在MessageBox.Show(例如Message)行上;它显示应用程序停止工作等
MessageBox(灰显且无响应)有时不显示任何内容,有时显示以下文本:
已成功与服务器建立连接,但在登录过程中发生错误(提供程序:SSL提供程序,错误:0收到的消息是意外的或格式不正确)
可能与此有关吗
什么可能导致此问题?您建议采取什么步骤来解决此问题?这里的答案有效:
安装.NET 4.5.2和以下更新解决了此问题。有什么例外?对,因此问题。。。例外情况是什么?异常往往具有有关所发生错误的有用信息,包括但不限于错误消息和堆栈跟踪。你只是告诉我们你的应用程序崩溃了。没有更多的信息,我们不知道为什么。“可能导致问题的原因”可能是任何东西,例外情况是试图告诉您确切的原因,您只是忽略了这些信息。您可能需要首先修改应用程序以处理异常,然后才能诊断此特定异常。我向您保证,
try
/catch
构造实际上会捕获SqlException
。与.NET异常处理存在根本问题相比,更可能的情况是您错误地处理了异常。您展示的代码没有异常处理,因此到目前为止唯一合理的假设是您没有处理异常。您描述的行为支持此假设。请定义“它挂起在messagebox上”。我无法诊断我看不到的代码。原来的问题仍然存在。。。您没有处理异常,并且忽略了异常包含的信息。请在应用程序中为所有异常创建事件处理程序并记录。您可以使用AppDomain.CurrentDomain获取当前域。然后,您可以向我们展示更多有关实际发生的情况以及引发的异常的详细信息。