错误:由于错误 8150002e 无法完成操作

问题描述 投票:0回答:1

我正在开发 Outlook VSTO 加载项,我在其中使用“System.Windows.Forms.WebBrowser”来显示加载项功能。

一个功能要求是与云帐户(如 OneDrive、Dropbox)建立 oauth 连接。当用户单击按钮(例如“连接 OneDrive”)时,我们使用 oauth-url 在 JavaScript 代码 (ES6) 中调用“window.open”。

我面临的问题是,如果用户未输入任何凭据并关闭窗口,然后再次尝试连接云帐户(通过单击“连接 OneDrive”),我会遇到异常(错误:由于错误 8150002e.).

,无法完成操作

我在网上找不到有关错误代码“8150002e”的任何信息。

此异常并不总是存在,但大约有 50% 的时间出现。

任何帮助将不胜感激。

我尝试过的:

  1. 每次调用 window.open 时更改 windowName 参数

  2. 具有窗口对象的全局变量。

  3. 使用_blank参数每次打开一个新窗口

  4. 5-6 次后,错误出现,5-6 次后错误消失,授权窗口开始像以前一样出现。

  5. 在'window.open'中打开一个简单的静态HTML页面来验证问题是否与HTML页面有关。以上问题依旧存在
  6. 以编程方式重置 System.Windows.Forms.WebBrowser。
  7. 取出饼干。
  8. 我们调用 VSTO 代码打开浏览器窗口,而不是从 JavaScript 代码调用 window.open,错误仍然存在。

编辑:在 https://github.com/vinay-x/SampleAddin

问题相关代码:

  • SDXOLForm1.cs(将浏览器导航到 SamplePage.HTML 托管在 localhost:8001 上) SamplePage.HTML(包含一个按钮,调用 window.open 函数)。

示例应用程序有一个 windows 窗体,其中包含一个 webBrowser 控件,该控件导航到一个包含按钮的简单 HTML 页面。

javascript c# vsto outlook-addin window.open
1个回答
0
投票

不得不处理一些 IE11 的东西,我遇到了这个问题。我发现解决此问题的解决方案是在调用 window.open 之前将 window 变量设置为 null。

所以对于你的例子,你有这个:

function myFunction() {
    window.open("https://www.w3schools.com", 'BackfliptOAuth', "width=800,height=800,center=true,useContentSize=true");
}

我修改成这样:

var win = null;
function myFunction() {
    win = null;
    win = window.open("https://www.w3schools.com", 'BackfliptOAuth', "width=800,height=800,center=true,useContentSize=true");
}
© www.soinside.com 2019 - 2024. All rights reserved.