Tag: gzip

如何在runAllManagedModulesForAllRequests设置为true的情况下为IIS 7中的flv文件禁用gzip压缩?

我有一个在IIS 7上运行的ASP.NET 3.5网站,我希望我的静态内容(如css文件,javascript文件等)压缩gzip以及我的动态内容(.net页面)。 问题是我需要确保flv文件(flashvideo文件)不是gzip压缩的,因为这会导致我正在使用的Flashvideo播放器出现问题, Flowplayer 。 我已将以下行添加到我的web.config中,它启用了压缩,但我的flv文件也被gzip压缩: 我试图将以下内容添加到我的web.config中,但它没有改变任何东西: 我必须为flv文件关闭doDynamicCompression而不是gzip压缩。 我认为它将flv文件视为动态内容,因为我在web.config中运行了AllManagedModulesForAllRequests =“true”(我需要处理路由中的一些事情)。 总之,如何禁用flv文件的gzip压缩?

在GzipStream中压缩多个文件

如何在GZipStream中压缩多个文件? 我有3个xml文件,我想将它们压缩成一个.gz文件,当我解压缩时,我应该得到所有3个单独的文件。 我怎样才能做到这一点?

用于HTTP压缩的GZip或Deflate

哪种压缩方法更好? 我听说很多关于GZip被广泛使用的来回,但Deflate更快(在某些情况下)。 是否有一个可以使用的标准,为什么?

添加Interval时,HttpWebRequest会变慢

测试下载网页源的不同可能性我得到了以下结果(google.com,9gag.com的平均时间毫秒): 普通的HttpWebRequest:169,360 Gzip HttpWebRequest:143,260 WebClient GetStream:132,295 WebClient DownloadString:143,389 所以对于我的9gag客户端,我决定采用gzip HttpWebRequest。 问题是,在我的实际程序中实现后,请求所需的时间超过两倍。 只在两个请求之间添加Thread.Sleep时也会出现问题。 编辑: 刚刚改进了一些代码,仍然是同样的问题:当我在循环中运行时,当我在请求之间添加延迟时,请求需要更长的时间 for(int i = 0; i < 100; i++) { getWebsite("http://9gag.com/"); } 每个请求大约需要250毫秒。 for(int i = 0; i < 100; i++) { getWebsite("http://9gag.com/"); Thread.Sleep(1000); } 每个请求大约需要610毫秒。 private string getWebsite(string Url) { Stopwatch stopwatch = Stopwatch.StartNew(); HttpWebRequest http = (HttpWebRequest)WebRequest.Create(Url); http.AutomaticDecompression = DecompressionMethods.GZip […]

在C#中将GZIP添加到WCF REST服务

我在C#.NET WCF Web服务上启用GZIP压缩时遇到了麻烦,希望有人可能知道我在App.conf配置文件中缺少的内容,或者在调用启动Web服务时需要多少额外function。代码。 我已经按照将GZIP压缩应用到WCF服务的链接指向下载Microsoft添加GZIP的示例,但该示例与我如何设置我的Web服务无关。 所以我的App.conf看起来像 我只是将配置和GZIP类从MS示例复制到我的项目中,并添加了我相关的Web服务配置。 我用来启动Windows服务的代码是: WebServiceHost webserviceHost = new WebServiceHost(typeof(MyService.Service1)); webserviceHost.Open(); webservice运行正常,但是当从Web浏览器拨打电话时,Fiddler没有检测到任何带有GZIP压缩的响应。 我还尝试以编程方式使用GZIP设置和运行Web服务,但失败了。 绿色我不知道还需要配置什么,任何建议都很棒 我深入研究了这一点并发现,因为我正在运行Web服务作为WebServiceHost对象,它必须使用WebServiceHost默认的WebHTTPBinding对象覆盖app.conf文件中的自定义GZIP绑定,这意味着任何即将发生的事情不会对Web服务进行编码。 为了解决这个问题,我想我会以编程方式将自定义GZIP绑定编写到代码中 var serviceType = typeof(Service1); var serviceUri = new Uri(“http://localhost:8080/webservice”); var webserviceHost = new WebServiceHost(serviceType, serviceUri); CustomBinding binding = new CustomBinding(new GZipMessageEncodingBindingElement(), new HttpTransportBindingElement()); var serviceEndPoint = webserviceHost.AddServiceEndpoint(typeof(IService), binding, “endpoint”); webserviceHost.Description.Endpoints[0].Behaviors.Add(new WebHttpBehavior { HelpEnabled = true }); webserviceHost.Open(); […]

ServiceStack – 使用gzip / deflate压缩和JSONP请求

我有一个ServiceStack服务,使用RequestContext.ToOptimizedResult()压缩响应,例如: [Route(“/numbers/search”)] public class FindNumbers { } public object Get(FindNumbers query) { var data = new List { “One”, “Two”, “Three” }; return RequestContext.ToOptimizedResult(data); } 这在发出如下请求时非常有效: GET http://myhost:13487/numbers/search.json 并使用Accept-Encoding请求标头按预期压缩: Accept-Encoding: gzip,deflate,sdch 我也可以发出JSONP请求: GET http://myhost:13487/numbers/search?callback=func 正确返回application/javascript回调(未压缩)。 问题 当我将Accept-Encoding请求标头添加到JSONP请求时,响应是根据原始JSON请求的压缩JSON数据,而不是压缩的application/javascript回调。 是否有任何明显的原因导致我对此行为缺失,或者它只是ServiceStack中的一个错误? 我的期望是在响应中接收压缩的JSONP回调,但我对JSONP相当绿色,并且可能有一个很好的理由进行回退。 请注意,我正在通过ServiceStack源进行工作,但我想我会在那里得到它,因为更多的大脑比一个更好… 提前致谢 编辑 所以,我已经从以下来源追踪了这个问题 https://github.com/ServiceStack/ServiceStack/blob/5d09d439cd1a13712411552e2b3ede5a71af2ee5/src/ServiceStack/Host/Handlers/GenericHandler.cs#L79 和 https://github.com/ServiceStack/ServiceStack/blob/5d09d439cd1a13712411552e2b3ede5a71af2ee5/src/ServiceStack/Host/RestHandler.cs#L107 if (doJsonp && !(response is CompressedResult)) return httpRes.WriteToResponse(httpReq, response, […]

Web API Gzip未被应用

我添加了web.config条目以启用基于此S / O答案启用IIS7 gzip的 gzip压缩。 然后我在加载ASPX页面时检查了Chrome Developer窗口,并在响应中看到了标题: Cache-Control:private Content-Encoding:gzip Content-Length:3669 Content-Type:text/html; charset=utf-8 Date:Wed, 04 Mar 2015 00:46:05 GMT Server:Microsoft-IIS/7.5 Vary:Accept-Encoding X-AspNet-Version:4.0.30319 X-Powered-By:ASP.NET 这意味着它“正常”,对吗? 但是在进行Web API调用时查找该标头时,它不存在: Cache-Control:no-cache Content-Length:551 Content-Type:application/json; charset=utf-8 Date:Wed, 04 Mar 2015 00:53:05 GMT Expires:-1 Pragma:no-cache Server:Microsoft-IIS/7.5 X-AspNet-Version:4.0.30319 X-Powered-By:ASP.NET 我尝试了各种不同的配置(从上面链接的S / O答案中推荐的配置开始)。 最后,在一个绝望的行为中,我将它设置为这个,我认为它会尝试压缩所有请求(除了* / *注释掉的所有内容): <!– –> <!– –> <!– –> 什么可以阻止GZIP应用于我的Web API方法? 更新 […]

.NET中最快的GZIP解压缩库

哪个.NET库具有最快的解压缩性能(就吞吐量而言)? 那里有不少图书馆…… GZipStream DotNetZip Xceed Zip for .NET SevenZipLib SharpZipLib | Xceed Zip for .NET的社区赞助商 ……我希望还有更多我没有列出的。 有没有人看过这些GZIP库的吞吐量性能基准? 我对减压吞吐量很感兴趣,但我也希望看到压缩的结果。

如何使用C#下载并解压缩gzip文件?

我需要定期下载,提取并保存http://data.dot.state.mn.us/dds/det_sample.xml.gz的内容到磁盘。 任何人都有使用C#下载gzip压缩文件的经验?

使用gzip压缩HttpWebRequest

我正在开发一个.NET 4.0控制台应用程序作为SOAP Web Service客户端,它将数据(POST)发送到第三方。 我无法控制服务器端的Web服务。 第三方确实提供了WSDL’s使用,我能够导入它们并合理地使用它们。 但是,需要使用gzip压缩请求消息,并且我无法终身使用代理服务来弄清楚如何使用gzip 。 这个关于SO的主题让我相信,如果不能控制客户端和服务器代码,就无法压缩请求。 作为这一发现的结果,我在我的应用程序中编写了代码,以在XDocument对象中手动创建SOAP XML ; 然后,填充我之前编写的客户端应用程序要使用的WSDL代理类对象中的值。 此客户端的第一个要求是通过gzip发送压缩的消息。 经过一些研究,我看到答案很简单,就像在请求头中添加HttpRequestHeader.AcceptEncoding, “gzip, deflate”一样简单。 不幸的是,这样做似乎不起作用。 目前,我检索的证书不是真正的证书。 在部署到测试环境进行实际的服务测试之前,我试图使代码尽可能健全。 有没有办法通过代理调用( wsdl )压缩请求? 为了正确压缩HttpWebRequest我是否缺少一些东西? 可能会出现其他错误,导致返回错误消息? 如果请求本身没问题,我希望有关身份validation的其他消息无效 。 有没有办法通过app.config进行压缩? 下一组要求我对如何处理/做什么感到困惑。 假设我已经将请求的ContentType设置为,我如何(以及什么)添加content-transfer-encoding片段以添加请求? 如果ContentType不正确,我该如何添加此信息? 具有MTOM编码附件的SOAP Evenlope的内容类型必须是“application / xop + xml”,content-transfer-encoding必须是8位。 我已经完成了下面代码的几次迭代,但是,我相信相关的代码片段是最简单的代码。 如果有其他信息有用,请告诉我。 创建HttpWebRequest的方法: private static HttpWebRequest CreateWebRequest(SoapAction action) { string url = GetUrlAddress(action); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Headers.Add(HttpRequestHeader.AcceptEncoding, […]