2011-11-01 44 views
4

我有一个处理静态资源(例如png文件)的Kentico CMS网站。我希望这些文件不被ASP.NET处理。我该怎么做呢?如何防止ASP.NET和Kentico处理静态文件

我使用Kentico CMS(Web窗体)运行IIS 7.5和ASP.NET 3.5。应用程序池是集成模式

我查看了网络配置文件中的<location>元素,但似乎实施它并没有什么区别。

更新:图像包含在名为/ res的文件夹中,该文件夹是webroot文件夹的子项。即不由kentico管理,媒体库等。通过Visual Studio添加。

编辑:潜在的问题是我的主页有很多图像,有时需要很长时间才能加载。有时,静态图像可能需要一整分钟才能加载(触发我们的警报)。我不是100%确定是什么原因导致此问题,这是故障排除的一个步骤。

+0

是通过Kentico上传的图像(通过CMSDesk添加为内容还是导入到媒体库中),还是仅在Kentico运行的目录中? –

+0

更新了帖子。谢谢。 –

回答

3

集成模式意味着all requests will participate in the ASP.NET pipeline。我相信静态资源的最终处理程序是来自IIS的静态文件处理程序,但在提供这些文件之前,您将看到ASP.NET模块和应用程序事件被触发(包括身份验证)。

也许,你应该详细说明你遇到的这个问题。通常,您可以关闭特定路径的ASP.NET模块。
由于您将这些文件放在一个子文件夹中,因此其他解决方法可能是将子文件夹设为不同的应用程序,并在经典模式下将这些文件提供给其他应用程序池。

+0

谢谢。我意识到,所有的请求都通过集成模式下的asp.net。我对此知之甚少,无法知道如何阻止这些文件被处理。我读了一些关于在web.config中使用元素的内容,但我不知道如何测试那个工作。我已经编辑了带有潜在问题的问题。谢谢:) –

+0

@rob_g,可能你的请求可能正在排队。使用诸如fiddler之类的工具来检查这一点。以经典模式提供这些文件是否解决了您的问题?如果是的话,你可以尝试清除所有路径的模块(或者你可以把一个单独的配置文件放在子文件夹中)。会话状态模块可以对请求进行排队,但它不应该进入静态资源的操作 - 清除所有模块应该采取这种可能性。 – VinayC

+0

感谢VinayC。我刚刚使用pingdom来分析页面,当然建议我需要平行化图像请求。我早就考虑过的东西。我现在要去那个方向。谢谢 –

2

如果文件直接放在文件系统上(并且不在Kentico CMS的媒体库中使用),Kentico CMS不处理这些文件。无论如何,如果您想要获得更好的性能,也许应该考虑通过CMS界面添加它们 - 这样它们将由CMS引擎处理,您可以使用Kentico CMS中提供的缓存选项来提高性能。每次从磁盘加载文件可能并不总是如何检索它们的最快方式。