2013-01-03 36 views
0

我一般在尋找一些關於wcf服務的反饋,我是一個完整的初學者。基本上,客戶端需要將xml文件和圖像傳輸到服務,以及能夠從服務中拉取數據集/或xml文件。我已經建立了一個wsDualHttpBinding雙工合同來允許這個(回調)。我的主要三個問題是:初學者的一般WCF服務設置

  1. 設置雙工合同是實現來回數據傳輸的唯一方法嗎?
  2. 使用wsDualHttpBinding,我不能流顯然,如果我的文件不大於10MB,是正常的讓緩衝區,然後發送到服務?
  3. 將.jpg圖像發送到服務的最佳方式是什麼?

我真的可以使用一些反饋,wcf可以非常複雜,尋找正確的做事方式對初學者來說並不容易。沒有太多關於這個話題的回答。

編輯:建立流,得到錯誤的端點後沒有跟隨HTTP協議

<binding name="duplexendpointserver" 
       maxReceivedMessageSize="2147483647" 
       transferMode="Streamed" 
       messageEncoding="Mtom"> 
     <security mode="TransportCredentialOnly"> 
     <message clientCredentialType="UserName" /> 
     </security> 
    </binding>   <!--<reliableSession ordered="true" inactivityTimeout="00:10:00"/>--> 
    <!--</binding>--> 
    </basicHttpBinding> 
</bindings> 


<services> 
    <service name="Votex.Service.WCFServices" behaviorConfiguration="svcbh"> 
    <endpoint name="duplexendpoint" address="" binding="basicHttpBinding" bindingConfiguration="duplexendpointserver" contract="Votex.Service.IWCFServices" ></endpoint> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> 
    </service> 
</services> 

回答

1

檢查出Large Data and Streaming這個MSDN文章。

  1. 您可以將服務設置爲具有可以在沒有雙面合同的情況下發送和接收的方法。
    • void Upload(Stream uploadStream)
    • Stream Download(string fileName)
  2. 您只能使用流與以下綁定:basicHttpBinding的,NetTcpBinding的,NetNamedPipeBinding和的WebHttpBinding。
  3. 我會建議你閱讀我上面鏈接的整篇文章,這應該讓你開始。
+0

因此,我設置了我的流,當我嘗試將一個流傳遞給服務時,我在客戶端中發生錯誤,基本上說可能端點地址沒有遵循http協議。任何想法,爲什麼這可能是? – TMan

+0

你可以發佈你的端點和綁定配置嗎?僅供參考,文章有一個錯字... transferMode =「流」(而不是「流」) – TylerOhlsen

+0

好吧,我繼續並從服務中發佈所需的web.config。感謝您的幫助btw – TMan