GZipModule : IHttpModule ASP.NET的問題

coolman2008 2010-09-10 09:17:22
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.IO;
using System.IO.Compression;

namespace ToToGaGa.net
{
public class GZipModule : IHttpModule
{
void IHttpModule.Dispose()
{
//throw new Exception("The method or operation is not implemented.");
}

void IHttpModule.Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(context_BeginRequest);
}

void context_BeginRequest(object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;

string encodings = app.Request.Headers.Get("Accept-Encoding");

if (encodings == null)
return;

Stream s = app.Response.Filter;

encodings = encodings.ToLower();

if (encodings.Contains("gzip"))
{
app.Response.Filter = new GZipStream(s, CompressionMode.Compress);
app.Response.AppendHeader("Content-Encoding", "gzip");
app.Context.Trace.Warn("GZIP Compression on");
}
else
{
app.Response.Filter = new DeflateStream(s, CompressionMode.Compress);
app.Response.AppendHeader("Content-Encoding", "deflate");
app.Context.Trace.Warn("Deflate Compression on");
}
}
}
}



<httpModules>
<add name="GZipModule" type="ToToGaGa.net.GZipModule, ToToGaGa.net" />
</httpModules>

以上功能可實現GZip壓縮,正常,但就是把我的圖片都相反壓大,如何過濾所有image/jpg/png/gif等等圖片不壓縮??
...全文
196 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
coolman2008 2010-09-13
  • 打赏
  • 举报
回复
我都知是可以用機的GZip,但我是租用人家godaddy服務器,他們沒開壓縮我都要自己做,所以高手請給出解決方式 !!!!!!!!!!!!!!!!!!!!!!!!!!!
  • 打赏
  • 举报
回复
其实如果内容很小往往不值得压缩。它只有在单机处理速度跟网络速度相差巨大时才有用,如果网络速度相当快,那么对于小内容进行压缩不一定划算。

所以,我觉得你还可以做判断,仅仅当输出内容很大时才支持客户端的压缩请求(否则就不支持)。
  • 打赏
  • 举报
回复
判断你的 Request.RawUrl,而不是仅仅判断 if (encodings.Contains("gzip"))。
winner2050 2010-09-11
  • 打赏
  • 举报
回复
楼主的代码也省事了吧,我见人家的gzip压缩模块都是很多代码的。

作一个过滤的功能就得了,文件路径是可以去得到的,根据配置文件对比,符合过滤条件就跳过。

这个仅仅是字符串的操作而已。

HttpContext context = ((HttpApplication)sender).Context;

string filepath=context.Request.Path;

通过配置文件
用 if 一句就可以了。
孟子E章 2010-09-11
  • 打赏
  • 举报
回复
iis 本身就可以配置gzip压缩了,并且可以指定扩展名
内容概要:本文针对功率阶跃工况下光储虚拟同步发电机(VSG)并网系统存在的电能质量问题,提出一种自适应治理策略。通过Simulink搭建完整的光储VSG并网系统仿真模型,重点研究在功率突变条件下系统出现的频率波动、电压畸变及谐波增加等动态问题。所提策略结合VSG的惯量与阻尼特性,设计了参数自适应调节机制,实现对系统动态响应过程的有效调控,显著提升了并网电流波形质量与频率稳定性,增强了系统在强扰动工况下的鲁棒性与电能质量治理能力。; 适合人群:具备电力电子、自动控制理论及新能源并网技术基础的科研人员、电气工程及相关专业的硕士/博士研究生,以及从事微电网、储能系统、VSG控制研发的工程技术人员。; 使用场景及目标:①用于分析光储系统在功率阶跃等动态工况下的并网特性与电能质量演变规律;②为VSG关键控制参数(如惯量、阻尼)的自适应整定提供设计思路与仿真验证平台;③支撑高水平学术论文复现、科研课题攻关及实际工程项目的前期控制策略验证。; 阅读建议:建议结合Simulink仿真模型深入理解控制策略的实现逻辑,重点关注VSG惯量阻尼协同调节的自适应机制设计,可通过设置不同功率阶跃幅度、光照强度变化及负载投切等多场景进行仿真测试,全面评估策略的动态性能与适用边界。
内容概要:本文系统研究了基于ARIMA-CNN-LSTM的混合时间序列预测模型,并提供了完整的Python代码实现。该模型融合传统统计方法ARIMA与深度学习模型CNN和LSTM的优势,充分发挥ARIMA在捕捉线性趋势与季节性特征方面的能力,以及CNN和LSTM在提取局部特征和建模长期依赖关系方面的强大性能,从而有效提升对复杂非线性时间序列的预测精度。研究涵盖了数据预处理、模型构建、参数调优、训练与预测全流程,并通过实际案例验证模型在风电、光伏、负荷、电价等能源领域预测任务中的优越表现。文档还整合了电力系统、路径规划、信号处理等多个科研方向的仿真资源与代码示例,凸显其在学术研究与工程实践中的广泛应用价值。; 适合人群:具备一定Python编程基础和机器学习理论知识,从事科研或工程技术工作的研究人员,特别适用于关注时间序列分析、深度学习建模的硕士生、博士生及行业从业者。; 使用场景及目标:①深入理解并掌握ARIMA与深度学习模型(如CNN、LSTM)融合的建模范式与技术细节;②应用于能源领域中风电出力、光伏发电、电力负荷及电价等关键变量的高精度预测;③为科研课题、学术论文复现、工程项目优化等提供可靠、可复用的代码框架与技术支持。; 阅读建议:建议结合所提供的Python代码进行动手实践,重点剖析数据预处理流程、混合模型架构设计及超参数调优策略,同时可参考文档中其他相关研究案例以拓宽技术视野和应用场景认知。

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧