#c# #.net #c#-2.0 #.net-remoting
#c# #.net #c #-2.0 #.net-удаленный доступ
Вопрос:
Я использую собственные вызовы pinvoke в своем приложении и внешние сборки в библиотеках DLL. Все работает нормально, пока часть программы не перестает работать, и я получаю:
«Первое случайное исключение типа ‘System.Runtime.Удаленное управление.RemotingException’ произошло в mscorlib.dll «
несколько раз в окне вывода отладки. Выполнение продолжается, оно просто выводит это в окне вывода, когда я пытаюсь выполнить свой код. Как узнать, где произошло исключение?
Ответ №1:
Имейте в виду разницу между исключениями первого и второго шанса. Исключение первого шанса — это throw, но оно может быть перехвачено и обработано еще до того, как вы его увидите. Это нормально и не слишком большая причина для беспокойства.
Исключение второго шанса — это когда исключение выбрасывается, и никто его не перехватывает, поэтому исключение становится необработанным и может привести к завершению работы вашей программы.
Вас беспокоит только текст отладки, или он не работает? Если это сработает, я бы не волновался. Если это вызывает серьезную озабоченность, перехватите это в WinDebug и проанализируйте, или вы можете указать IDE Visual Studio останавливаться при исключениях первой возможности.
Комментарии:
1. Это не работает. Мое приложение не выходит из строя, но и не работает должным образом.
2. Вам пришлось бы указать отладчику прерваться при RemotingException. Перейдите в Debug-> Exceptions и разверните «Common Language Runtime Exceptions», затем разверните System.Runtime. Удаленное подключение и установите флажок для вызываемого при RemotingException. Затем запустите свой код в разделе debug, и вы должны прерваться, как только будет вызвано RemotingException. Конечно, если проблема заключается не непосредственно в вашем коде, а является симптомом того, как ваш код использует фреймворк, что приводит к сбою фреймворка, диагностировать ее может быть сложнее.