2011-03-02 44 views
1

的參數我寫了一些服務,有方法得到的圖像(字節[])作爲參數(返回空隙)。我也寫了一些客戶端(客戶端&服務器上運行相同machien - 不同sulody - 使用IIS)發送位圖(作爲字節[])的服務 - 每次我嘗試發送我得到的異常:無法發送圖像(字節[])作爲WCF服務

錯誤而接收到http://localhost/WebService/Service.svc HTTP響應發生。這可能是由於服務端點綁定不使用HTTP協議。這也可能是由於一個HTTP請求上下文服務器(可能由於服務關閉)

我增加了一個方法獲取無效,並返回INT被中止 - 我可以調用此方法沒有任何問題。

什麼可能是錯誤的?我是否需要在客戶服務參考中定義某些特定項目?

的服務方法

[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 2011-03-02 11:33:22

+0

客戶端方法或服務方法? – Yanshof 2011-03-02 11:34:22

+0

我猜一開始的服務方法。 – rene 2011-03-02 11:38:00

回答

3

您必須配置在服務器的綁定來接受大的消息。默認情況下,它只接受最大65KB的消息和16k元素的數組=大小小於16KB的情況位圖。

使用這個在你的web.config(服務器端):

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

在你的端點配置參考此將其設置爲myBindingbindingConfiguration屬性綁定。

+0

謝謝!!!!是工作 ! – Yanshof 2011-03-02 12:28:32