계속 삽질을 했다....
왜 테스트 프로그램은 잘되는데 실제 프로젝트에 적용하면 안될까? 이런 고민을 했었다...
실제프로젝트 wcf서비스는 iis에서 돌고 있고
테스트는 콘솔 어플리케이션에서 서비스가 돌고 있었다...
이차이를 몰랐던것이다.
결국 이차이를 깨닫고 인터넷왜 찾아본결과
web.config에
<system.web>
<!--파일 업로드 크기-->
<httpRuntime maxRequestLength="2090000" />
</system.web>
에서 iis에서 파일전송 제한을 늘려야했다
첨에는 wsHttpBinding 탓하고 별탓을 다했다.
결국 테스트 프로그램 서버는
<!--wsHttpBinding 추가-->
<wsHttpBinding>
<binding name="FileTransferServicesBinding"
messageEncoding="Mtom"
maxReceivedMessageSize="2067108864">
</binding>
</wsHttpBinding>
이렇게 구현하고
클라이언트는
indings>
<wsHttpBinding>
<binding name="Binding1" maxReceivedMessageSize="267108864" messageEncoding="Mtom" />
<binding name="WSHttpBinding_IService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Mtom"
textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"
enabled="false" />
<security mode="Message">
<transport clientCredentialType="Windows" proxyCredentialType="None"
realm="" />
<message clientCredentialType="Windows" negotiateServiceCredential="true"
algorithmSuite="Default" establishSecurityContext="true" />
</security>
</binding>
</wsHttpBinding>
이렇게 구현하였다.
maxReceivedMessageSize 설정과 messageEncoding="Mtom" 이 관건이다.
파일전송 참고 사이트
'wcf' 카테고리의 다른 글
wcf설명 (0) | 2009.07.31 |
---|---|
[wcf] wcf 대용량 파일전송 2 (0) | 2009.07.22 |
[wcf] wcf에서 디버그 메세지를 자세히 볼려면? (0) | 2009.07.13 |
[wcf] "이름이 잘못된 문자로 시작합니다" 라는 오류가 나타날때 (0) | 2009.06.22 |
[wcf] Call Back 정리 문서 (wsDualHttpBinding) (0) | 2009.06.22 |