2011-09-07 7 views
-1

現在、WCFサービスにファイルをアップロードしてダウンロードするソリューションを開発中です。クライアントは、ClientBaseを継承するクラスです。私はMSDN articleをStackOverflowや他の場所でストリーミングやリンクに読みましたが、メッセージサイズが小さすぎるという理由がまだわかりません。私は小さなファイルでこれまでのソリューションをテストしています。サービスはIIS 7.5ClientBaseからWCFサービスにファイルをアップロードする<T>

でホストされている

ここでApp.configファイルは、サーバに加え

<system.serviceModel> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/> 

    <services> 
     <service name="UpdateService" behaviorConfiguration="UpdateServiceBehavior"> 
       <endpoint binding="basicHttpBinding" bindingName="LargeFileStreamingWebHttpBinding" contract="IUpdateService"></endpoint> 
       <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" /> 
     </service> 
    </services> 

    <behaviors> 
     <serviceBehaviors> 
       <behavior name="UpdateServiceBehavior" > 
         <serviceMetadata httpGetEnabled="true" /> 
         <serviceDebug includeExceptionDetailInFaults="true" /> 
       </behavior> 
     </serviceBehaviors> 
    </behaviors> 

    <bindings> 
     <basicHttpBinding> 
       <binding messageEncoding="Mtom" transferMode="Streamed" name="LargeFileStreamingWebHttpBinding" 
           maxBufferSize="65536" 
           maxReceivedMessageSize="2147483647" 
           /> 
     </basicHttpBinding> 
    </bindings> 
</system.serviceModel> 

内の関連するセクションがあり、私は」クライアントアプリケーションここ

<system.web> 
    <httpRuntime maxRequestLength="67108864" /> 
</system.web> 
<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
      <binding messageEncoding="Mtom" transferMode="Streamed" name="LargeFileStreamingHttpBinding" 
        maxBufferSize="65536" 
        maxReceivedMessageSize="2147483647"> 
       <readerQuotas maxDepth="32" maxArrayLength="200000000" maxStringContentLength="200000000"/> 
      </binding> 

     </basicHttpBinding> 
    </bindings> 
    <client> 
     <endpoint address="http://localhost/UpdateService.svc" 
         binding="basicHttpBinding" 
         contract="IUpdateService" 
         name="updateServiceEndpoint"/> 

    </client> 
</system.serviceModel> 

からですサーバーとクライアントの両方の設定で次のように追加しました:

<system.web> 
    <httpRuntime maxRequestLength="2147483647" /> 
</system.web> 

これは私がクライアントに

public class UpdateClient : ClientBase<IUpdateService>, IUpdateService 
{ 
    public UpdateClient() : base("updateServiceEndpoint") {} 
} 

をインスタンス化してる方法ですがだから私は間違って行くことができ任意のアイデアを持っていますか?どんな助けもありがとうございます。

-Thanks!

+0

は、サービスクラス名だけで「UpdateServiceを」ですbindingConfiguration属性が欠けていたのか、それはいくつかの名前空間に属しているのでしょうか?後者の場合は、 ''で完全修飾名を持つ必要があります。 – carlosfigueira

+0

簡略化のためにサービス契約ネームスペースを省略しました – abjbhat

+0

この特定の間違いを犯さない人は誰もこの質問の検索で答えを見つけることができないので、ローカライズされすぎると投票しました。 –

答えて

0

は答えが見つかりました - 非常に単純なミス、クライアント/エンドポイントのエントリが

関連する問題