2009-08-17 13 views
1

私たちはASP.NET 3.5 Webアプリケーションに接続し、通常は大量のデータをダウンロードするFlexアプリケーションを持っています。 XMLをトランスポートとして考えると、アイテムごとに、例えば、2倍のメタデータを送信します。<Customer CustomerID=23/>としてint値を転送する代わりに、<Customer><CustomerID>23</CustomerID></Customer>を送信します。ここで、帯域幅の保護が問題になります。Flex 3.5 WebService圧縮(フレックス)

    はFLEXがでGZipを読んで、圧縮されたHTTPレスポンスを収縮することはできません
  1. (だから、カントの使用は、それらのいずれか)私はいくつかのWSCompressionのことを聞いた
  2. が、それは私が私のホスティング環境では、あまりにも多くの依存関係を導入することを懐疑的になりましたWSE 3.0が必要です あまりにも多くの管理とオーバーヘッドが必要です。 WSE 3.0はプロダクションサーバーにインストールする必要のないdllライブラリのみですか? WebService属性をすべて書き直す必要がありますか?それとも、簡単な1回の設定ですか、多かれ少なかれ、誰もがFlexで動作するのですか?
  3. Flexは動的にWebサービスを生成し、自動生成されたコードを多く使用しています。圧縮をサポートしたい場合は、多くのコードを書き直す必要がありますか?

私が考えることができる最も簡単な解決策は、不要なXMLタグを減らし、帯域幅を節約するためにそれらを属性に減らします。それを達成するための簡単な方法はありますか?私たちのクラスは50-70個以上のプロパティを持っていますが、私はそれが悪夢で各プロパティに属性を追加することは理解していますが、SOAPの場合、

質問:

  1. とにかくWSE 3.0は何ですか、それは運用サーバーにインストールする必要がありますか? WSCompressionを有効にするには、各WebMethod属性のようにWebサービスコードに統合するための追加コードが必要です。属性にコードを追加する必要がありますか?

  2. プロパティを属性にタグ付けする簡単な方法は、[SoapAttribute]のようなシンプルな形式で強制的にシリアライズすることです。タグの代わりに属性としてデータを変換し、FLEXで動作するのか、

  3. SOAPには要素のみの標準形式がありますか、それとも属性をサポートできますか?

+0

**決して** WSEを使用しないでください! WSEは廃止され、WCFに置き換えられました。 –

+0

WSCompressionはWSEを介してのみサポートされています.WCFは、クライアントが.NET、FLEXではないため、WCFを使用できません。私たちは純粋なWebサービスを使いたいと思っており、マイクロソフトだけのコードに固執したくありません。 –

+0

WCFは純粋なWebサービスを完全にサポートしています!何がMicrosoftのコードだけをサポートしていると思いますか?それはASMXとWSEの代わりです!それが相互運用できなければ、それはマイクロソフトが完全に相互運用性を放棄したことを意味するでしょう! –

答えて

1

は最後に、私はSoapAttributeの「属性」しかし、MSDNのドキュメントとしてシリアル化するXmlAttribute

[XmlAttribute] 
public long CustomerID; 

軍のフィールドを使用して回避策を発見したと言い、次の「のXmlSerializerは、フィールドをシリアライズすることを指定するには、公共の場にSoapAttributeAttributeを適用しますXML属性として使用します。 SOAP標準によれば、それを行うべきですが、それはしません!

0

SOAPは属性と要素をサポートします。

+0

もう一度、Microsoftは標準100%をサポートしません。私は[SoapAttribute]を1つのクラスのすべてのプロパティに適用し、さまざまな組み合わせを試しました。直列化は常に要素内にあります。 –

+0

[SoapAttribute]はうまくいくはずですが、[XmlAttribute]の代わりにFLEXの実装の詳細を確認する必要があります。一度チェックを済ませたら回答を更新します。 –

+0

ドキュメントをよくお読みください。私はそれが混乱していることを知っていますが、 '[SoapAttribute]'はあなたの状況では動作しません。 http://msdn.microsoft.com/en-us/library/system.xml.serialization.soapattributeattribute.aspxの例を参照し、http://msdn.microsoft.com/en-us/library/systemと比較してください。 xml.serialization.xmlattributeattribute.aspx。 –