C# 使用gzip和标头压缩web方法调用返回的字符串数据

C# 使用gzip和标头压缩web方法调用返回的字符串数据,c#,.net,web-services,iis,webmethod,C#,.net,Web Services,Iis,Webmethod,我听说可以压缩web方法调用返回的数据。web方法返回一个字符串,然后我的客户端应用程序使用该字符串生成xml文档 下面是一段代码片段 [WebMethod] public string GetRegions() { // Create a new string builder for which the XmlWriter will append to. StringBuilder output = new StringBuilder(); // Create Xml

我听说可以压缩web方法调用返回的数据。web方法返回一个字符串,然后我的客户端应用程序使用该字符串生成xml文档

下面是一段代码片段

[WebMethod]
public string GetRegions()
{
    // Create a new string builder for which the XmlWriter will append to.
    StringBuilder output = new StringBuilder();

    // Create XmlWriter settings
    XmlWriterSettings settings = new XmlWriterSettings();
    settings.Indent = true;
    settings.IndentChars = "    ";

    // Use an XmlWriter and a StringBuilder for outputting the xml.
    using (XmlWriter writer = XmlWriter.Create(output, settings))
    {
        writer.WriteStartDocument();
        writer.WriteStartElement("MyData");
        writer.WriteStartElement("Regions");

        // Get all selectable regions
        RegionList regionList = RegionList.GetSelectable();

        // Loop through every region
        foreach(Region region in regionList.GetList())
        {
            writer.WriteStartElement("Region");
            writer.WriteElementString("RegionId", region.regionID.ToString());
            writer.WriteElementString("Code", region.code);
            writer.WriteElementString("Name", region.name);
            writer.WriteEndElement();

        }

        writer.WriteEndElement();
        writer.WriteEndDocument();

    }
    // Return the xml as a string
    return output.ToString();
}
我听说在请求头中添加了一些东西,例如“Accept Encoding:gzip”,但我不知道如何才能让它起作用。有人知道我的问题的解决办法吗


提前感谢。

您可以在IIS管理器中对承载Web服务的虚拟目录启用压缩,然后它将确定客户端是否可以接受压缩(GZIP)。相关问题:这个问题曾经在@bobbo解决过吗?我使用压缩机,但手动操作。如果你还需要实现这样的目标,我可以和你分享一下吗?