How can I find out what causes the AppCache Fatal Error in IE10?

I am trying to create an HTML5 application cache for a very large (about 2 gigabytes) web application to be used internally on a Windows 8 Professional and IE10 tablet. Something is causing the caching process to fail, but the only debugging information I can find is the F12 console, which simply says β€œFatal Error” AppCache.

I made an error handler and tried to debug:

if (window.applicationCache) { var oAppCache = window.applicationCache; oAppCache.onerror = function(e) { alert(e); // Outputs [object Event], I use this row as a breakpoint target }; } 

However, e does not contain useful information when viewing using the debugger.

According to the web server logs, the last file requested before the error is JPEG, like many others. Where should I start looking for clues about what causes the error? The cache page works fine in Firefox.

+8
debugging internet-explorer-10 html5-appcache
source share
5 answers

Some time ago my thought was about the same issue. I binary chopped my manifest until I found out which line was causing the error: it was the 1000th line of CACHE records (and not just the 1000th line of the manifest).

There seems to be a hard limit on the number of items you can have in the cache in IE10. I didn’t find this documented anywhere after a few minutes of searching, but I dare say that someone more persistent could melt it.

I checked that it doesn't matter what the contents of the 1000th CACHE element are; IE just prevents you from starting the cache download. This could be a restriction for security reasons, stopping someone flooding the cache or using it for a DoS site by entering a manifest with thousands of entries per page.

Perhaps try breaking the application into pieces (above subdomains?) With different caches. If you download chunks, you can automatically automate the "installation" by redirecting between several smaller caches.

+9
source share

For the record: I had problems with IE (10) giving me the AppCache Fatal Error . It turns out that IE requires the manifest to serve with the appropriate type of content, i.e.

 Content-Type: text/cache-manifest 

Chrome and Firefox are not so picky.

+5
source share

In case this helps someone, I found another way to fix this error.

If you use the application cache and set the Cache-Control header for the html file with the entry cache.manifest in "Cache-Control: no-cache, no-store", you will get this error. Removing the non-holding flag for the Cache-Control header will fix the problem in this instance. I tried to use the application cache only for resources, not for the html page itself, but, unfortunately, this is not what it was intended for.

Also note that all other browsers simply ignore the no-store flag for files in cache.manifest, while IE technically does the right thing, being a little more pedantic.

+3
source share

Internet Explorer Group Policy sets a limit on the size of the cache resource list per 1000 items. This can be expanded by changing this policy. More details can be found here , the part "Set the maximum size of the list of application cache resources".

+1
source share

My problem was that IIS used .manifest -Extension and set the Content-Type to x-ms-manifest . So I added the following to web.config - this solved fatal error (IE 11) and now the application works with HTTPS (SSL), which it did not do before (worked only with HTTP)

 <?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer> ... <staticContent> <remove fileExtension=".manifest"/> <mimeMap fileExtension=".manifest" mimeType="text/cache-manifest"/> </staticContent> ... </system.webServer> </location> </configuration> 
0
source share

All Articles