访问HTML5文件系统API时出现Awesomium访问冲突

时间:2013-11-21 17:44:02

标签: wpf html5 awesomium html5-filesystem

更新#1

为了清晰起见,更容易阅读,以下行是HTML5应用程序中导致我的Awesomium崩溃的最小代码

window.webkitStorageInfo.requestQuota(webkitStorageInfo.PERSISTENT,1,function() {}, function() {});

详情

我是Awesomium的新手,我希望也许其他人之前遇到过这个问题,或者可能知道如何修复它。

我正在为 Awesomium 1.7.3 创建一个带有Awesomium WebControl WPF应用。我在其中使用的其中一个网页使用HTML5 FileSystem API

当我在 Visual Studio的调试模式中运行我的应用程序时,我会尝试在HTML5应用程序中执行使用 FileSystem API 的功能。一旦发生这种情况,我就会弹出这个:

vshost32.exe has stopped working  A problem caused the program to stop working correctly. Windows will now close the program and notify you if a solution is available.

如果我点击了调试按钮,则会收到此警告对话框:

A debugger is attached to   but not configured to debug this unhandled exception. To debug this exception, detach the current debugger.

我查看了 Windows事件查看器,并为此找到了Error

Faulting application name: GeocortexApp.Windows.vshost.exe, version: 11.0.50727.1, time stamp: 0x5011d445
Faulting module name: awesomium.dll, version: 1.7.3.0, time stamp: 0x52698ef3
Exception code: 0xc0000005
Fault offset: 0x00a6d8a6
Faulting process id: 0x31c4
Faulting application start time: 0x01cee6500cc5ec54
Faulting application path:    C:\Development\GeocortexApp\_Trunk\GeocortexApp.Windows\bin\Debug\GeocortexApp.Windows.vshost.exe
Faulting module path: C:\WINDOWS\Microsoft.Net\assembly\GAC_32\Awesomium.Core\v4.0_1.7.3.0__e1a0d7c8071a5214\awesomium.dll
Report Id: c8d0cd0d-5244-11e3-be84-b8ca3aa5c3db
Faulting package full name: 
Faulting package-relative application ID: 

我调试了我的 HTML5 Web应用程序,并且能够将问题追溯到一行:

window.webkitStorageInfo.requestQuota(PERSISTENT, 1024*1024, successFunction, errorFunction);

只要我执行这一行代码,它就会关闭我的 WPF应用程序。有谁知道怎么解决这个问题?

1 个答案:

答案 0 :(得分:0)

我对Awesomium或WPF不是很熟悉。

但是,我知道你的文件系统API的HTML5 javascript目标行已在近6个月前被弃用。此外,该行的新代码将是以下或类似的东西。

navigator.webkitPersistentStorage.requestQuota(1024*1024, 
  function(grantedBytes){
  window.requestFileSystem(PERSISTENT, grantedBytes, successFunction, errorFunction);
}, errorFunction);

OR(差异为successFunction将执行文件系统请求。我假设以下是正确的调用,但我再也没有其他所有的东西了)

navigator.webkitPersistentStorage.requestQuota(1024*1024,successFunction,errorFunction);

希望这有帮助!