Ошибка: не удалось завершить операцию из-за ошибки 8150002e - PullRequest
0 голосов
/ 30 апреля 2018

Я работаю над надстройкой Outlook VSTO, в которой я использую «System.Windows.Forms.WebBrowser» для отображения функциональности надстройки.

Одним из функциональных требований является подключение к облачным учетным записям (например, OneDrive, Dropbox). Когда пользователь нажимает кнопку (например, «Connect OneDrive»), мы вызываем «window.open» в коде JavaScript (ES6) с помощью oauth-url.

Проблема, с которой я сталкиваюсь, заключается в том, что если пользователь не вводит учетные данные и не закрывает окно, а затем снова пытается подключиться к учетной записи в облаке (нажав «Подключить OneDrive»), я получаю исключение ( Ошибка: не удалось завершить операцию из-за ошибки 8150002e. ).

Я не смог найти информацию о коде ошибки '8150002e' в сети.

Это исключение не всегда присутствует, но встречается примерно в 50% случаев.

Любая помощь будет оценена в этом.

что я пробовал:

  1. изменение параметра windowName каждый раз, когда window.open называется

  2. с глобальной переменной для объекта Object.

  3. Использование параметра _blank для открытия нового окна каждый раз.

  4. Через 5-6 раз ошибка появляется, после 5-6 раз ошибка исчезает и окно аутентификации начинает появляться, как и раньше.

  5. Открытие простой статической HTML-страницы в window.open, чтобы проверить, связана ли проблема с HTML-страницей. Вышеуказанная проблема все еще присутствует.
  6. Программный сброс System.Windows.Forms.WebBrowser.
  7. Удаление куки.
  8. Вместо вызова window.open из кода JavaScript, мы вызываем код VSTO, чтобы открыть окно браузера, ошибка все еще там.

Редактировать : Создан минимальный жизнеспособный пример на https://github.com/vinay-x/SampleAddin

Код, связанный с проблемой:

  • SDXOLForm1.cs (перемещает браузер к SamplePage.HTML, размещенному на localhost: 8001) SamplePage.HTML (содержит кнопку, которая вызывает функцию window.open).

Пример приложения имеет форму окна, которая содержит элемент управления webBrowser, который переходит на простую страницу HTML, которая содержит кнопку.

...