WebView 2 Вызывает сбой приложения

#dynamics-crm #webview2 #unified-service-desk

Вопрос:

Я конвертирую некоторые старые приложения из WebBrowser / WebView в WebView2, чтобы учесть такие проблемы, как проблемы со стилем (режим совместимости IE), отсутствие рендеринга PDF-файлов и т. Д.

Это в рамках Единой службы поддержки для Microsoft CRM. Тип хостинга размещенного элемента управления-Chrome, и когда я переключаю его на Edge, он работает, но не загружает интерфейс CRM.

Вот код, в котором я инициализирую corewebview. Если я это прокомментирую, это сработает, но затем остальная часть моего кода завершится ошибкой, потому что он неправильно инициализирован:

         protected override async void DoAction(RequestActionEventArgs args)
        {
            await webView2.EnsureCoreWebView2Async();

            webView2.CoreWebView2.DOMContentLoaded  = new EventHandler<CoreWebView2DOMContentLoadedEventArgs>(WebView_NavigationCompleted);
 

Я преобразовал весь код, и он работает…но только иногда. Когда я открываю свои приложения webview2, они загружаются нормально. Но когда я открываю запись CRM в долларах США, это приводит к закрытию доллара США с этой ошибкой в журнале:

Исключение 0x33BC0116:В объекте namedpipeserver произошло неизвестное исключение.

Microsoft.Crm.UnifiedServiceDesk.Ошибка ProcessMonitor 2 07/08/2021 11:56:41 Сообщение: Исключение 0x33BC0110: Источник : mscorlib Метод : ThrowForNonSuccess Время : 11:56:41 Дата : 07/08/2021 Ошибка : Задача была отменена. Трассировка стека : в System.Runtime.Услуги компиляторов.Дежурный.ThrowForNonSuccess(Задача задачи) в System.Runtime.Услуги компиляторов.Дежурный.HandleNonSuccessAndDebuggerNotification(Задание задачи) в системе.Windows.Нарезание резьбы.Диспетчерская операция.Подождите(время ожидания) в системе.Windows.Нарезание резьбы.Диспетчер.Вызов IMPL(диспетчерская операция, отмена, отмена, тайм-аут) в Системе.Windows.Нарезание резьбы.Диспетчер.Вызовите[TResult](обратный вызов функции 1, приоритет приоритета диспетчера, функция отмены, время ожидания) в Microsoft.Crm.UnifiedServiceDesk.Dynamics.Служебные программы.Ловец цфата.SafeInvokeOnStaThread(обратный вызов делегата, приоритет диспетчера, приоритет диспетчера, тайм-аут промежутка времени, функция отмены, функция отмены, Объект [], логический безопасный режим) в Microsoft.Crm.UnifiedServiceDesk.Динамика.Служебные программы.Ловец цфата.SafeInvokeInternal(Обратный вызов делегата, приоритет диспетчеризации, приоритет диспетчеризации, временной интервал, функция отмены, функция отмены, аргументы объекта [], логическое значение runOnMainUiThread, логический безопасный режим) в Microsoft.Crm.UnifiedServiceDesk.Dynamics.Служебные программы.Ловец цфата.Вызов(Обратный вызов действия, логический runOnMainUiThread, логический безопасный режим) в Microsoft.Crm.UnifiedServiceDesk.Dynamics.Служебные программы.Глобальные ключи.Отменить регистрацию(UInt16 hKeyId) в Microsoft.Crm.UnifiedServiceDesk.Dynamics.Служебные программы.Глобальные ключи.Утилизируйте() в Microsoft.Crm.UnifiedServiceDesk.Динамика.Служебные программы.Глобальные ключи.CurrentDomain_ProcessExit(Отправитель объекта, параметры события e)