你能解决我奇怪的Sharepoint CSS缓存/自定义问题吗?

你能解决我奇怪的Sharepoint CSS缓存/自定义问题吗?,css,sharepoint,caching,solution,Css,Sharepoint,Caching,Solution,我的sharepoint css有一个奇怪的情况 它是作为.wsp解决方案的一部分部署的,到目前为止,一切都很好 它部署的服务器场也有两个Web前端和一个应用服务器和SQL box 症状是,如果我部署解决方案,然后使用webbrowser查看没有样式的页面,如果我直接访问.css,我会看到.css的前100个左右字节 但是,如果我进入sharepoint designer查看文件,它看起来很好,如果我签出并发布它(自定义文件,但实际上不更改其中的任何内容),那么网站工作正常,css完全下载 服务

我的sharepoint css有一个奇怪的情况

它是作为.wsp解决方案的一部分部署的,到目前为止,一切都很好

它部署的服务器场也有两个Web前端和一个应用服务器和SQL box

症状是,如果我部署解决方案,然后使用webbrowser查看没有样式的页面,如果我直接访问.css,我会看到.css的前100个左右字节

但是,如果我进入sharepoint designer查看文件,它看起来很好,如果我签出并发布它(自定义文件,但实际上不更改其中的任何内容),那么网站工作正常,css完全下载

服务器上有一些相当复杂的基于磁盘的缓存和对象缓存。据我所知,我已经清除了这些(而且issreset无论如何都应该清除它们……不是吗?)


我使用此工具清除了整个服务器场中的blobcache

您描述的问题是我以前遇到过的问题。让我来分享我所知道的,我所怀疑的,以及我将如何对您的场景进行故障排除

首先,听起来您怀疑缓存是一个潜在的问题源。就MOSS发布功能集而言,实际上有三种不同的缓存机制在运行:对象缓存、BLOB缓存和页面输出缓存。唯一应该发挥作用的机制是BLOB缓存,假设它是在默认设置下打开的。对象缓存和页面输出缓存都不应该像您所做的那样接触独立样式表

您已经尝试使用场级BLOB缓存刷新功能刷新缓存,这将指示MOSS转储所有BLOB缓存数据。您可以通过查看文件系统来验证这一点,以确保刷新后仅保留三个.bin文件夹

关于IISRESET的具体问题:不,IISRESET实际上不会清除BLOB缓存。BLOB缓存的内容在为web应用程序提供服务的应用程序池的生命周期之外仍然存在。您要么需要使用功能清除缓存(就像以前一样),要么执行手动文件删除。我不推荐后者,除非你完全没有其他行动方案。如果您选择使用手动路径进行尝试,请确保在从文件系统中删除文件之前关闭W3SVC服务。如果不这样做,实际的文件删除过程可能会进入缓存重新填充的竞争条件,并导致损坏。使用停止的W3SVC删除文件后,可以再次启动W3SVC备份

有关BLOB缓存内部及其运行方式的更多信息,我将向您介绍我的一篇博客文章:

要查看BLOB缓存是否是您看到的行为的一个因素,您可以修改web应用程序的web.config并调整文件模式,以从元素中的文件类型列表中删除CSS,然后重新启动IIS(或至少回收应用程序池)

根据经验,另一种可能性是,您看到的不是BLOB缓存异常。我的主要观察结果是,您观察到对CSS样式表的直接请求只返回大约前100个字节

您是否有可能在WFE和您(呼叫方)之间拥有任何智能网络硬件(即入侵检测硬件或任何可能执行应用程序/第7层过滤的硬件)?入侵检测和IPS系统是您所看到的许多类型问题的根源,每当我看到您所描述的“古怪”行为时,它们就是我的第一站。在我的一个客户机的例子中,我发现一个问题符合您的描述(CSS和JS文件被截断),这是由于带有活动IP的Juniper防火墙的介入。关闭IPS(用于测试)会立即清除问题。在那之后,网络团队寻求Juniper的更新来纠正这个问题,以确保IP可以保持活动状态

尝试关闭BLOB缓存(或从文件模式中删除CSS扩展名),看看这是否会有所不同。如果没有,请与您的网络团队交谈,以查看返回给您的响应流是否发生了什么变化。这就是我要开始的地方;希望这两件事中的一件能帮到你

小旁注:如果您有空闲时间并且能够胜任,我想听听您对从CodePlex下载的BlobCacheFarmFlush解决方案的体验。这是我写的,我很想听听你的想法——好的还是坏的:-)

  • 肖恩(sean@sharepointinterface.com)

感谢您的全面回答。我将调查位于我们和(远程托管的)Sharepoint场之间的IP等。我们的防火墙确实遇到了很多问题,让我们的系统和他们的系统的不同部分相互通信。希望这些信息对你有用,艾丹。如果这两个建议对你都没有任何帮助(如果是这样的话,我会很惊讶),请再次发布。祝你好运