HTML 5 Кэш приложения IE10/11 Неустранимая ошибка AppCache при работе Chrome и Android

Я создал простое тестовое приложение ASP.NET MVC, пытаясь использовать кэш приложений. Похоже, что Chrome работает нормально, однако в IE 10/11 при загрузке кеша мы получаем следующие сообщения. Любые идеи или образец, где это работает?

Фатальные ошибки IE AppCache

Я пробовал несколько вещей, включая файл меньшего размера для загрузки. Я видел, что есть предел, который может вызвать аналогичную ошибку.

манифест

CACHE MANIFEST
#VERSION 9

CACHE:
/Content/site.css

NETWORK:
*

FALLBACK:

Индекс

@{
    Layout = null;
}

<!DOCTYPE html>

<html manifest="home/manifest">
<head>
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
    <meta http-equiv="CACHE-CONTROL" content="NO-CACHE" />
    <meta http-equiv="EXPIRES" content="0" />
    <meta http-equiv="PRAGMA" content="NO-CACHE" />
    <title>Offline Test</title>
    <link rel="Stylesheet" href="/Content/site.css"
          type="text/css" />
    <script src="/Scripts/jquery-1.10.2.min.js"
            type="text/javascript"></script>
    <script>
        $(function () {

        });
    </script>
</head>
<body>

</body>
</html>

MVC Controller

[OutputCache(Duration = 0, NoStore = true)]
public class HomeController : Controller

MVC Action

    public ContentResult Manifest()
    {

        Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
        return new ContentResult
        {
            ContentType = "text/cache-manifest",
            Content = RenderPartialViewToString("Manifest"),
             ContentEncoding = System.Text.Encoding.UTF8

        };

        // Doesn't work.  Content type is still html
        //Response.ContentType = "text/cache-manifest";
        //Response.ContentEncoding = System.Text.Encoding.UTF8;
        //Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
        //return PartialView();
    }

Я попытался добавить вызов SetNoStore() в обработчик Application_EndRequest, но это не имело никакого значения.

    public override void Init()
    {
        base.Init();

        EndRequest += Application_EndRequest;
    }

    private void Application_EndRequest(object sender, EventArgs e)
    {
        HttpContext.Current.Response.Cache.SetNoStore();
    }

Спасибо!

1 ответ

Решение

Удалить no-store в Cache-Control-Header, он ломает appCache в IE10/IE11 (см. /questions/24118923/kak-otlazhivat-ie11-appcache/24118925#24118925).

Другие вопросы по тегам