IIS7动态内容压缩和Web服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IIS7动态内容压缩和Web服务相关的知识,希望对你有一定的参考价值。

我正在将旧的asmx webservice移动到带有IIS7的新服务器上。 这个web服务基本上将一个大数据集(10mb +)发送到winform应用程序。 旧解决方案是使用自定义soap扩展实现的,该扩展在将流发送到客户端之前压缩内容。 当然,客户端实现了相同的自定义soap扩展,以解压缩数据集中的流。一切都运作良好多年。 我的客户不想将代码升级到WCF。他们只想将旧App放在新服务器上并使用新的动态内容压缩功能。 我们正在测试服务器上测试一些东西(win serv 2008),它似乎工作得很好,即使看起来很慢:我们看不到未压缩和压缩流之间的性能(速度)有任何差异。 这是问题所在。我应该在哪里设置?大多数人说我不能把它放在我的web.config中;其他人说它可以放在那里。我有点困惑。 有什么技巧或事我应该知道吗?那么mimeTypes呢?我应该在哪里设置一些参数? ...考虑我的流是XML(数据集)?

答案

假设您可以轻松禁用压缩代码,那么使用IIS7压缩功能非常简单。

您可以使用IIS7中的web.config在文件夹文件夹级别启用和禁用压缩。

但是,控制哪些mimetypes被压缩而哪些没有被压缩的配置存储在web服务器级别。

要在给定的site / vdir /文件夹上启用动态压缩,假设服务器已安装动态压缩功能,只需在IIS管理器中打开您的站点/文件夹,然后点击“压缩”图标。在这里,您可以启用静态和动态压缩。

此时,检查它是否有效(即流量确实被压缩)。如果是这样,那么默认的动态压缩配置正在运行,你可以去抢早餐:)

如果没有,那么你需要:

  • 单击IIS管理器中的服务器节点(位于根目录)。然后打开“配置编辑器”(位于底行,通常在左侧)。
  • 在出现的表单的下拉列表中,展开system.webserver节点,然后单击“httpCompression”叶节点。
  • 现在,您将看到所有用于压缩的服务器范围配置选项 - 您需要打开'dynamicTypes'设置。
  • 在那里,您可以为需要压缩的mimetypes添加额外的规则。

有一点令人讨厌的是mimetypes完全匹配,有时默认规则不符合你想要的一切。

例如,我已经为我们的服务器添加了4个额外的规则:

  • 应用程序/ JSON
  • 应用程序/ XML

然后:

  • 应用/ JSON;字符集= UTF8
  • 应用/ XML;字符集= UTF8

因为,出于某种原因,我发现我的.Net的json / xml响应的mimetype最后有这个额外的'charset ='位。如果确实如此,并且它不在规则列表中,那么IIS7压缩将无法启动。让我感受到年龄(以及很多使用Fiddler!)来解决这个问题!

以上是关于IIS7动态内容压缩和Web服务的主要内容,如果未能解决你的问题,请参考以下文章

如何改变iis7 HTTP服务器缺省Banner

IIS 7 日志记录 Web 服务方法

IIS 7.5 动态压缩不起作用 - NO_MATCHING_CONTENT_TYPE

Web服务部署 ----预习笔记

IIS7web服务器调试ASP.net程序遇到的一些故障的解决办法

静态服务器和动态服务器(静态web页面和动态web页面)