Приложение .NET 4.0, работающее на .NET 4.5.1, аварийно завершает работу в System.Data.dll и зависает после создания System.Data.SqlClient.SqlException

Когда я пытаюсь запустить приложение .NET, предназначенное для платформы .NET 4.0, на компьютере с установленной только .NET 4.5.1. Приложение обычно работает примерно на 50 компьютерах в одном сетевом домене, а также на одном компьютере с VS 2012, на котором установлена ​​.NET 4.5.1. Вылетает только на одной конкретной машине.

Я получаю сбой «Приложение не отвечает» в следующем коде:

//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(ex.Message); Он показывает, что приложение перестало работать и т. Д.

MessageBox (серый и не отвечающий) иногда ничего не показывает, иногда следующий текст: A connection was successfully established with the server but an error occured during the login process (provider: SSL provider, error: 0 The message received was unexpected or badly formatted)

Может ли это быть связано с этим?

http://support.microsoft.com/kb/2915689

Как исправить ошибку подключения к SQL Server: поставщик SSL, ошибка: 0 — полученное сообщение было неожиданным или неправильно отформатировано

Что может быть причиной проблемы и какие шаги вы бы порекомендовали для решения этой проблемы?


person Vojtěch Dohnal    schedule 11.08.2014    source источник
comment
Что за исключение?   -  person David    schedule 11.08.2014
comment
Правильно, отсюда и вопрос... Что такое исключение? Исключения, как правило, содержат полезную информацию о возникшей ошибке, включая, помимо прочего, сообщение об ошибке и трассировку стека. Все, что вы говорите нам, это то, что ваше приложение потерпело крах. Мы не можем знать, почему без дополнительной информации. Причиной проблемы может быть что угодно, и исключение пытается сообщить вам, точно что ее вызвало, вы просто игнорируете эту информацию. Возможно, вам придется сначала изменить свое приложение для обработки исключений, прежде чем вы сможете диагностировать это конкретное исключение.   -  person David    schedule 11.08.2014
comment
Уверяю вас, что конструкция try/catch действительно захватывает SqlException. Гораздо более вероятно, что вы неправильно обрабатываете исключение, чем что существует фундаментальная проблема с обработкой исключений .NET. Код, который вы показали, не имеет обработки исключений, поэтому единственное разумное предположение, которое можно сделать до сих пор, состоит в том, что вы не обрабатываете исключение. Описанное вами поведение подтверждает это предположение.   -  person David    schedule 11.08.2014
comment
Определите, что он зависает в окне сообщений. Я не могу диагностировать код, который не вижу. Исходная проблема все еще остается... Вы не обрабатываете исключение и игнорируете содержащуюся в нем информацию.   -  person David    schedule 11.08.2014
comment
В вашем приложении создайте обработчик событий для AppDomain.UnhandledException и логировать все исключения. Вы можете получить текущий домен, используя AppDomain.CurrentDomain. Затем вы можете показать нам более подробную информацию о том, что на самом деле происходит и какие исключения были сгенерированы.   -  person Ivan Zub    schedule 12.08.2014


Ответы (1)


Ответ здесь сработал:

Как исправить ошибку подключения к SQL Server: поставщик SSL, ошибка: 0 — полученное сообщение было неожиданным или неправильно отформатировано

Установка .NET 4.5.2 и последующих обновлений решила проблему.

person Vojtěch Dohnal    schedule 13.08.2014