2009-08-17 4 views
1

우리는 ASP.NET 3.5 웹 응용 프로그램에 연결하고 일반적으로 많은 양의 데이터를 다운로드하는 플렉스 응용 프로그램을 보유하고 있습니다. 이제 XML을 전송으로 간주하여 모든 항목에 대해 예를 들어 두 번 메타 데이터를 전송합니다. <Customer CustomerID=23/>으로 int 값을 전송하는 대신 <Customer><CustomerID>23</CustomerID></Customer>을 전송합니다. 이제 여기에 대역폭 보존이 문제가됩니다.플렉스에 대한 ASP.NET 3.5 웹 서비스 압축

    는 FLEX는 Gzip으로를 읽고 압축 된 HTTP 응답을 DEFLATE 수 없습니다
  1. (그래서 캔트 사용은 그들 중) 좀 WSCompression 들어
  2. 하지만 내 호스팅 환경에 너무 많은 의존성을 소개 회의적 이제 WSE 3.0을 필요로 너무 많은 관리 및 간접비가 필요합니다. 프로덕션 서버에 설치가 필요없는 WSE 3.0 전용 dll 라이브러리입니까? 모든 WebService 속성을 다시 써야합니까? 아니면 한 번 구성이 간단하고 다소 차이가 있습니까?
  3. Flex는 동적으로 웹 서비스를 생성하며 자동 생성 된 코드를 많이 사용합니다. 이제 압축을 지원하려면 많은 코드를 다시 작성해야합니까?

내가 생각할 수있는 가장 간단한 해결책은 필요없는 XML 태그를 줄이고 대역폭을 절약하기 위해 속성을 줄입니다. 그것을 달성하는 쉬운 방법이 있나요, 우리 수업에는 50-70 가지 이상의 속성이 있습니다. 각 속성에 속성을 추가하는 것은 악몽이 될 것이라는 것을 이해합니다. 그러나 SOAP의 경우에는 어떻게 해야할지 잘 모릅니다.

질문 :

  1. 어쨌든 WSE 3.0 무엇, 그것은 프로덕션 서버에 설치해야합니까? WSCompression을 사용하려면 각 WebMethod 속성과 같은 웹 서비스 코드에 통합 된 추가 코드가 필요합니다. 속성에 코드를 추가해야합니까?

  2. 속성을 속성에 태그를 지정하고 태그 대신 속성으로 데이터를 변환하는 [SoapAttribute] 같은 간단한 형식으로 강제로 serialization을 수행하는 쉬운 방법이 있습니까? 아니면 FLEX와 함께 작동합니까, 아니면 모든 클라이언트에서 사용할 수 있습니까?

  3. SOAP는 요소의 표준 형식 만 가지고 있거나 속성을 지원할 수 있습니까?

+0

** 절대로 ** WSE를 사용하십시오 !!! WSE는 더 이상 사용되지 않으며 WCF로 대체되었습니다. –

+0

WSCompression은 WSE를 통해서만 지원되며 클라이언트가 FLEX 인 .NET이 아니기 때문에 WCF를 사용할 수 없습니다. 우리는 순수한 웹 서비스를 사용하기를 원하며 microsoft only 코드를 고집하고 싶지 않습니다. –

+0

WCF는 순수한 웹 서비스를 완벽하게 지원합니다! Microsoft 코드 만 지원한다고 생각하는 이유는 무엇입니까? 그것은 ASMX와 WSE를 대체합니다! 상호 운용되지 않으면 Microsoft가 상호 운용성을 완전히 포기했음을 의미합니다. –

답변

1

마지막으로 나는 SoapAttribute의 "속성"그러나 MSDN 문서로 직렬화 할 수있는 XmlAttribute

[XmlAttribute] 
public long CustomerID; 

강제 필드를 사용하여 해결 방법을 찾을 말한다 다음 "XmlSerializer가 필드를 직렬화하도록 지정하는 공공 필드로 SoapAttributeAttribute 적용 XML 속성으로. " SOAP 표준에 따르면, 그렇게해야하지만, 그렇지 않습니다 !!

0

SOAP는 요소뿐만 아니라 특성도 지원합니다.

+0

글쎄, 마이크로 소프트는 다시 표준 100 %를 지원하지 않는다. 한 클래스의 모든 속성에 [SoapAttribute]를 적용하고, 다양한 조합을 시도했다. 직렬화는 항상 요소에 속한다. –

+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. –