2010-12-21 28 views
2

大きなファイルの場合は、maxReceivedMessageSizeの設定に問題があります。WCF - maxReceivedMessageSize

私が取得しています:

着信メッセージ(65536)の最大メッセージサイズクォータは を超えてきました。クォータを増やすには、 のMaxReceivedMessageSizeプロパティを適切なバインディング要素の に設定します。ここで

私のサーバー側の設定である:ここで

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings> 
    <add key="HTTPBaseAddress" value="http://localhost:8080/WelcomeMessage/"/> 
    <add key="HTTPFileTransferAddress" value="http://localhost:8080/FileTransfer/"/> 
    </appSettings> 
    <system.web> 
    <compilation debug="false" /> 
    </system.web> 
    <system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 
    <system.serviceModel> 
    <services> 
     <service name="FS.Services.MessageService" behaviorConfiguration="MyServiceTypeBehaviors"> 
     <endpoint contract="FS.Interfaces.IMessageService" address="" binding="wsHttpBinding"/> 
    </service> 
     <service name="FS.Services.FileTransferService" behaviorConfiguration="MyServiceTypeBehaviors"> 
     <endpoint contract="FS.Interfaces.IFileTransferService" address="" binding="basicHttpBinding" bindingConfiguration="streamedHttpBinding"/> 
     </service> 
    </services> 
    <bindings> 
     <basicHttpBinding> 
     <binding name="streamedHttpBinding" 
       messageEncoding="Text" 
       transferMode="Streamed" 
       maxReceivedMessageSize="400000000"/> 
     </basicHttpBinding> 
    </bindings> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="MyServiceTypeBehaviors"> 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="false" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    </system.serviceModel> 
</configuration> 

は私のクライアント側の設定です:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.serviceModel> 
    <client> 
     <endpoint address="" binding="wsHttpBinding" contract="FS.Services.IMessageService" 
     name="FS.Services.MessageService" /> 
     <endpoint address="" binding="basicHttpBinding" bindingConfiguration="streamedHttpBinding" 
     contract="FS.Services.IFileTransferService" name="FS.Services.FileTransferService" /> 
    </client> 
    <bindings> 
     <basicHttpBinding> 
     <binding name="streamedHttpBinding" maxReceivedMessageSize="400000000" 
      messageEncoding="Text" transferMode="Streamed"/> 
     </basicHttpBinding> 
    </bindings> 
    </system.serviceModel> 
</configuration> 

これは私がクライアントの接続方法である。また、

BasicHttpBinding binding2 = new BasicHttpBinding("streamedHttpBinding"); 
EndpointAddress endpoint2 = new EndpointAddress("http://localhost:8080/FileTransfer"); 
ChannelFactory<IFileTransferService> channelFactory2 = new ChannelFactory<IFileTransferService>(binding2, endpoint2); 
IFileTransferService proxy2 = channelFactory2.CreateChannel(); 
((IClientChannel)proxy2).Open(); 

を私はstを使用して500 MBまでのファイルの任意のタイプを転送したいと思いますリームメッセージ。 誰かがそれをサポートする設定(または解決策)を私に提供できますか?

Thanx!

あなたのクライアント側の設定は、サーバーを参照する任意の <client>のタグを持っていない、とあなたが増加メッセージサイズとの結合設定を適用できるためにどの
+0

申し訳ありません...コードを挿入しようとしましたが、最初の行のみが表示されます... – no9

+0

ok thanx、fixed。 – no9

答えて

3

......

あなたサーバーで側、あなたがサービスとそのエンドポイントを定義する必要があります:あなたのクライアント

<services> 
    <service name="YourNamespace.YourServiceClass"> 
     <endpoint name="endpoint1" 
       address="http://server:8888/YourService.svc" 
       binding="basicHttpBinding" 
       bindingConfiguration="lageMessageTransfer" 
       contract="IYourServiceContract" /> 
    </service> 
</services> 

は、サービスエンドポイントの1つ

に接続しているクライアントエンドポイントを定義する必要があります
<client> 
    <endpoint name="Default" 
      address="http://server:8888/YourService.svc" 
      binding="basicHttpBinding" 
      bindingConfiguration="lageMessageTransfer" 
      contract="IYourServiceContract" /> 
</client> 

更新: OK、今私は罰金あなたの設定を参照してください - しかしがに接続しているクライアントエンドポイントですaddress=は定義されていません。

<client> 
    <endpoint name="FS.Services.FileTransferService" 
       address="" 
       binding="basicHttpBinding" 
       bindingConfiguration="streamedHttpBinding" 
       contract="FS.Services.IFileTransferService" /> 
</client> 
+0

どこにクライアントタグを置くのですか?私はそれと一緒にサービスセクションをカプセル化しなければならないと思う? – no9

+0

私はミスしたイメージを残念です! – no9

+0

それは問題ではないように見える...他のアイデア? – no9

関連する問題