2011-03-02 4 views
1

이미지 (byte [])를 매개 변수로 (return void) 가져 오는 메소드가있는 서비스를 작성했습니다.WCF 서비스의 매개 변수로 이미지 (byte [])를 보내지 못했습니다.

또한 서비스에 비트 맵 (바이트 [])을 전송하는 일부 클라이언트 (클라이언트 & 서버가 동일한 machien에서 실행 됨 - IIS 사용)가 발생했으며 예외를 보내려고 할 때마다 :

http://localhost/WebService/Service.svc에 대한 HTTP 응답을받는 동안 오류가 발생했습니다. 이것은 HTTP 프로토콜을 사용하지 않는 서비스 엔드 포인트 바인딩 때문일 수 있습니다. 이것은 서버에 의해 중단 된 HTTP 요청 컨텍스트 (서비스가 종료되었을 가능성이 있음)로 인한 것일 수도 있습니다.

무효화되고 int를 반환하는 메소드가 하나 더 추가되었습니다.이 메서드를 아무 문제없이 호출 할 수 있습니다. .

무엇이 잘못 될 수 있습니까? 클라이언트 서비스 참조에서 특정 speciel을 정의해야합니까?

서비스 방법

[ServiceContract] 
**public interface IService** 
{ 
    [OperationContract] 
    void GetPic(byte[] pic); 
} 

**public class Service : IService** 
{ 
    public void GetPic(byte[] pic) 
    { 
      ... 
    } 
} 

Web.config 파일은 :

<system.serviceModel> 
<services> 
    <service behaviorConfiguration="ServiceBehavior" name="ServiceProxy.Service"> 

    <endpoint 
     name="basicHttp" 
     address="" 
     binding="basicHttpBinding" 
     bindingConfiguration="" 
     contract="Contracts.IService"> 
    </endpoint> 

    <endpoint 
     address="mex" 
     binding="mexHttpBinding" 
     contract="IMetadataExchange" > 
    </endpoint> 

    <host> 
     <baseAddresses> 
     <add baseAddress="http://localhost:8731/ServiceProxy/" /> 
     </baseAddresses> 
    </host> 

    </service> 
</services> 

<behaviors> 
    <serviceBehaviors> 
    <behavior name="ServiceBehavior"> 
     <serviceMetadata httpGetEnabled="True"/>  
     <serviceDebug includeExceptionDetailInFaults="False" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 

+0

실제 방법을 표시하거나 공유 할 수 있습니까? – rene

+0

클라이언트 메소드 또는 서비스 메소드는 무엇입니까? – Yanshof

+0

서비스 방법이 처음 인 것 같습니다. – rene

답변

3

당신은 당신이 큰 메시지를 허용하도록 서버에 바인딩을 구성해야합니다. 기본적으로 최대 65KB의 메시지와 크기가 16KB 미만인 케이스의 비트 맵 = 16k 요소가있는 배열 만 받아들입니다.

사용이 당신의 Web.config에서 (서버 측) : 엔드 포인트 구성 참조에서

<bindings> 
    <basicHttpBinding> 
    <binding name="myBinding" maxReceivedMessageSize="1000000"> 
     <readerQuotas maxArrayLength="1000000" /> 
    </binding> 
    </basicHttpBinding> 
</bindings> 

myBinding으로 설정하여 bindingConfiguration 속성에 바인딩.

+0

을 추가했습니다. 감사합니다 !!!! 그 일! – Yanshof