실버라이트2와 ASP.NET의 WCF 통신때 주의점 ASP.NET/.NET

- basicHttpBinding을 사용한다고 가정했을때.(여러가지 브라우저에 대한 호환성을 생각하면 basicHttpBinding이 유리) 다른 바인딩을 사용할 때는 브라우저 호환성을 장담할 수 없다.

- 배열이나 List<>등을 사용한다면 그 갯수가 2만개 이하로 할것. 2만개 이상으로 할 경우 maxArrayLength값 이상이 되어 예외가 발생할 가능성이 있다. 어느정도 이하로 아이템의 수가 제한되지 않는다면 전체를 보내서 파싱작업은 실버라이트 클라이언트에서 하는 것이 좋다. ReaderQuotas의 maxArrayLength를 수정하는 방법은 basicHttpBinding에서는 막혀 있으니 최대값을 변경한다는 생각은 하지 말 것.

- 데이터 전송이 안정적인 크기는 20MB 이하. 하지만 100MB정도까지도 전송이 가능하다. 그 이상의 경우에는 소켓통신을 고려한다.

- XML을 통한 직렬화-역직렬화 과정을 거치므로 Text를 그대로 보낼때는 이스케이프 문자등을 제거하거나 다른 문자로 치환해 주어야한다.

- 전송중에 타임아웃 관련이나 파일 크기에 대한 오류가 발생한다면 binding 태그의 내용을 다음처럼 적절히 수정해준다.

<binding name="BasicHttpBinding_SessionLog" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" openTimeout="00:01:00" receiveTimeout="00:01:00">


- endpoint 태그의 address가 IP형태가 아닌 호스트의 이름으로 되어 있는 경우 가능하면 IP형태로 변경해준다. 로컬에서 Web Development Server를 가지고 하는 경우에는 동적으로 할당된 포트를 기준으로 address 값이 설정되므로 실제 타겟서버가 사용하는 포트와 다른 포트를 가리킬 수도 있다.

- MS는 관대하지만 불안정하다. 이건 진리....ㅡ.ㅡ;


덧글

댓글 입력 영역