代码之家  ›  专栏  ›  技术社区  ›  Akash Kava

用于flex的ASP.NET 3.5 WebService压缩

  •  1
  • Akash Kava  · 技术社区  · 16 年前

    我们有灵活的应用程序连接到我们的ASP.NET 3.5 Web应用程序,通常下载大量数据。现在考虑将XML作为传输,例如,对于每个项目,它会传输两次元数据。而不是将int值作为 <Customer CustomerID=23/> 它传送 <Customer><CustomerID>23</CustomerID></Customer> …现在带宽节约成了一个问题。

    1. flex无法读取gzip和deflate压缩的HTTP响应(因此不能使用其中的任何一个)
    2. 我听说了一些 WSCompression 但是它需要wse 3.0,现在我怀疑在我的托管环境中引入太多的依赖性,这需要太多的管理和开销。WSE 3.0是否仅限于不需要在生产服务器上安装的DLL库?它需要全部重写吗 WebService 属性?或者它是简单的一次性配置,或多或少,有人知道它与flex一起工作吗?
    3. flex动态地生成Web服务,我们使用它的许多自动生成的代码,现在如果我们想支持压缩,那么我们需要重写许多代码吗?

    我能想到的最简单的解决方案是,减少不必要的XML标记,并将它们减少到属性,以节省带宽。有没有一个简单的方法来实现它,我们的类有50-70个以上的属性,我理解向每个属性添加属性将是一个噩梦,但我们不知道在使用SOAP的情况下如何做。

    问题:

    1. 究竟什么是wse 3.0,它是否需要安装在生产服务器上?要启用wscompression,我们是否需要在Web服务代码中集成其他代码(如每个webmethod属性),是否需要在属性中添加更多代码?

    2. 有没有一种简单的方法可以用属性来标记属性,并以简单的形式强制序列化,比如[SoapAttribute],它将数据转换为属性而不是标记,它是使用flex工作的,还是使用任何客户机工作的?

    3. SOAP是只有元素的标准格式还是可以支持属性?

    2 回复  |  直到 16 年前
        1
  •  1
  •   Akash Kava    16 年前

    最后,我找到了使用xmlattribute的解决方法

    [XmlAttribute]
    public long CustomerID;
    

    强制将字段序列化为“attribute”,但是soap attribute的msdn文档如下所示:“将soap attribute attribute应用于公共字段以指定xmlserializer将字段序列化为xml属性。”根据soap标准,它应该这样做,但它不这样做!你说什么?

        2
  •  0
  •   John Saunders    16 年前

    SOAP支持属性和元素。