Firefox 4.0 始终刷新 Silverlight XAP 文件
我在使用新版 FireFox 4.0 时遇到问题。
在我的网站中,我托管了一个名为 Visualization 的 Silverlight 对象。
在 Firefox 3.6、Chrome、IE 7、8、9 中,浏览器加载 XAP 文件一次,如果没有,则从缓存中获取它,然后进行回发或重新进入站点。
在 FF 4 中,每次我进入站点时它都会重新加载 XAP 文件。
我尝试了很多并在网上搜索,但不知道如何解决该问题。
我的 Silverlight 对象具有:
<param name="enableCacheVisualization" value="true"/>
托管该对象的站点具有页面头
<%@ OutputCache Duration="600000" VaryByParam="none" %>
,并且我在 ClientBin 文件夹中有一个自己的 web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<location path="Visualisation.xap">
<system.webServer>
<staticContent>
<clientCache cacheControlCustom="public" cacheControlMode="UseMaxAge" cacheControlMaxAge="10.00:00:00" />
</staticContent>
</system.webServer>
</location>
</configuration>
有什么想法吗? 该网站在 IIS7(Win 2008 服务器)上运行,使用 .Net 4.0 和 c# 作为 Backcode
希望提示
I've trouble with the new FireFox 4.0 Release.
In my Website i hosted a Silverlight Object, named Visualisation.
In Firefox 3.6, Chrome, IE 7, 8, 9 the Browsers load the XAP File Once and get it from cache if not then do a postback or re-enter the site.
In FF 4 it reloads XAP File everytime i enter the site.
I tried a lot and searched the web but have no idea to fix the problem.
My Silverlight Object has the:
<param name="enableCacheVisualization" value="true"/>
The Site which hosted the Object has the Page Head
<%@ OutputCache Duration="600000" VaryByParam="none" %>
and i have an own web.config in the ClientBin folder:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<location path="Visualisation.xap">
<system.webServer>
<staticContent>
<clientCache cacheControlCustom="public" cacheControlMode="UseMaxAge" cacheControlMaxAge="10.00:00:00" />
</staticContent>
</system.webServer>
</location>
</configuration>
Any Ideas?
The site runs on a IIS7 (Win 2008 Server) with .Net 4.0 and c# as Backcode
hope for hints
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我会在网络选项卡下使用 firebug 来查看您的网络服务器正在发送哪些缓存标头。您希望看到类似以下内容:Cache-Control: max-age=31536000,也许还有一个 Etag。
我认为在 IIS 的公共标头菜单下的 HTTP 标头下有一个缓存设置。
您可以尝试使用的另一件事是 MIME 类型。它应该是“Content-Type: application/x-silverlight-app”
如果标头发送正确并且 Firefox 选择忽略它们,那么您可能无能为力。
事实上,我在使用 Chrome 时遇到了相反的问题。 Chrome 的缓存似乎非常激进,我发现自己正在运行旧版本的 .xaps。
I'd use firebug under the net tab to see what cache headers are being sent by your web server. You want to see something like: Cache-Control: max-age=31536000 and maybe an Etag.
There is a setting for caching under HTTP Headers in IIS under the common headers menu I think.
Another thing you might try playing with is the MIME type. It should be "Content-Type: application/x-silverlight-app"
If the headers are getting sent correctly and Firefox is choosing to ignore them, then there might not be anything you can do.
I've actually had the opposite problem with Chrome. Chrome seems to be very agressive with it's caches and I find myself running old versions of .xaps.
看来 Firefox 4.0+ 只缓存大小为 5MB 或更小的文件。
查看错误报告
It seems firefox 4.0+ caches only files with 5MB or less in size.
See bug report