У меня есть пользовательский элемент управления с управлением ReportViewer
от Microsoft. Когда форма активна с этим настраиваемым элементом управления, и я выхожу из приложения, нажав красный крест (в правом верхнем углу), я получаю System.CannotUnloadAppDomainException
.Как обрабатывать System.CannotUnloadAppDomainException?
Я читал, что это известная ошибка управления MS ReportViewer. Чтобы исключить это исключение, вам необходимо вызвать метод ReleaseSandboxAppDomain
. Я пробовал это, но он не может заставить его работать. Я вызываю этот метод на событие ParentForm_Closing
в пользовательском элементе управления. Но это событие не срабатывает при закрытии приложения, щелкнув красный крест в правом верхнем углу.
Итак, мой вопрос: как я могу предотвратить это исключение?
Вот код, который вызывает метод ReleaseSandboxAppDomain
:
this.ParentForm.FormClosing += delegate
{
reportViewer.LocalReport.ReleaseSandboxAppDomain();
};
Не могли бы вы показать соответствующий код (тот, который вызывает 'ReleaseSandboxAppDomain' ... и т. Д.)? – ken2k
@ ken2k Я обновил свой вопрос – Martijn
Код, который вы опубликовали, в порядке и должен работать. Если событие не запущено, в вашем коде есть что-то еще, что предотвращает его. Есть ли что-то особенное в обработчике событий закрытия вашей формы? – ken2k