IIS6 中的 ASP.NET MVC 压缩选项
目前我仍坚持使用 IIS6 for ASP.NET-MVC(如我还无法升级到 Server 2008)。 它似乎不知道我的 RESTful URL 是动态文件并且没有压缩它们。
我所有旧的 .aspx 文件都被压缩(如 Fiddler 中所示),但 '/products/1001'
类型的 URL 未被压缩。
有没有办法让 IIS6 压缩 IIS6 中的 ActionResults,而不使用 用于压缩的 ActionFilter。
我假设 IIS7 足够聪明,知道它们是动态的,对吧。
如果您能告诉我 IIS6 是如何知道哪些文件是动态的,那就加分了!
For now I'm stuck with IIS6 for ASP.NET-MVC (as in I cant upgrade to Server 2008 yet). It doesnt seem to know that my RESTful URLS are dynamic files and isn't compressing them.
All my old .aspx files are compressed (as seen in Fiddler), but not the '/products/1001'
type URLS.
Is there any way to get IIS6 to compress my ActionResults in IIS6 without using something like an ActionFilter for compression.
I'm assuming IIS7 is clever enough to know they're dynamic right.
Bonus points if you can tell me how IIS6 even knows which files are dynamic in the first place!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
由于从 1.0 版本开始,ASP.NET 的 HTTP 压缩通常是使用 HttpModule 实现的,并且 HttpModule 仍然属于 MVC 框架使用的 ASP.NET 请求管道,因此您仍然可以使用 HttpModule 来注入 GZIP 或 deflate 响应过滤器。
在这里你可以找到一个非常好的、开源的、准备发布的实现:
Ben Lowery 的 HttpCompress(下载地址:Google 代码)
您只需添加对 DLL 的引用,并在 web.config 中添加几行即可。 它已经处理了非常奇特和罕见的情况和例外。 您可以向 web.config 添加排除项,不是基于文件扩展名(如 IIS6),而是基于 MIME 类型,这可能正是您所需要的。
我应该补充一点,我实际上已经使用这个库在 IIS6 上运行了 ASP.NET MVC 网站,因此我可以确认这在实践中是有效的。
As HTTP compression for ASP.NET usually has been implemented using HttpModules since version 1.0, and HttpModules still belong to the ASP.NET request pipeline used by the MVC framework, you can still use a HttpModule to inject a GZIP or deflate response filter.
Here you can find a very nice, open-source, ready to ship implementation:
HttpCompress by Ben Lowery (download at Google Code)
You just have to add a reference to the DLL, and add a few lines to your web.config. It already handles very exotic and rare cases and exceptions. You can add exclusions to your web.config, not based on file extensions (like in IIS6), but on mime type, which is probably exactly what you need.
I should add that I have actually running a ASP.NET MVC website on IIS6 using this library, so I can confirm that this works in practice.
在 Web 配置中,您应该注册 StaticFileHandler 和 HTTP 模块
源代码,您将找到 此处
但不要忘记在 IIS 上打开压缩
In a web config you should register StaticFileHandler and HTTP Module
Source code you will find here
But do not forget to turn on compression on IIS
这里有一个选项似乎对我使用通配符映射和无扩展 url 的 MVC 和 IIS 6 有效:
这是一种解决方法,但我目前仍坚持使用 Server 2003 和 IIS 6。
Here's one option that seems to be working for me with MVC and IIS 6 using wildcard mappings and extensionless urls:
This is a workaround, but I'm stuck with Server 2003 and IIS 6 for the moment.