IIS7动态内容压缩和Web服务

时间:2010-05-14 10:25:11

标签: .net iis iis-7

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

1 个答案:

答案 0 :(得分:1)

假设您可以轻松禁用压缩代码,那么使用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!)来解决这个问题!