2012-04-14 20 views
1

私はこのエラーを1週間処理していましたが、検索しても解決できませんでした。 エラーは次のとおりです。Set MaxReceivedMessageSize(リモートサーバーが予期しない応答を返しました:(400)Bad Request)web.configが機能しません。

リモートサーバが予期しない応答を返しました:(400)バート・ 要求。

Windows PhoneアプリからWCF経由で画像を保存しようとしていますが、MaxReceivedMessageSizeをデフォルトよりも高く設定する必要があることがわかりました。私はすべてを試したが運がなかった!私のWindows Phoneアプリケーションで

マイweb.configファイル(WCFサービス)

<configuration> 
    <system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
     <binding name="BasicHttpBinding_IService1" 
       maxReceivedMessageSize="2147483647" 
       maxBufferSize="2147483647" 
       maxBufferPoolSize="2147483647" 
       hostNameComparisonMode="StrongWildcard" 
       receiveTimeout="00:10:10" 
       sendTimeout="00:10:00" 
       openTimeout="00:10:00" 
       closeTimeout="00:10:00" 
       transferMode="Buffered" 
       messageEncoding="Text" 
       textEncoding="utf-8" 
       bypassProxyOnLocal="false" 
       useDefaultWebProxy="true" > 
      <readerQuotas 
      maxDepth="2147483647" 
      maxStringContentLength="2147483646" 
      maxArrayLength="2147483647" 
      maxBytesPerRead="2147483647" 
      maxNameTableCharCount="2147483647"/> 
     </binding> 
     </basicHttpBinding> 
    </bindings> 
    <services> 
    <service name="Service1" behaviorConfiguration="Service1Behavior"> 
     <endpoint 
      address="" 
     binding="basicHttpBinding" 
      bindingConfiguration="BasicHttpBinding_IService1" 
      contract="IService1" /> 
     <endpoint 
      address="mex" 
      binding="mexHttpBinding" 
      contract="IMetadataExchange" 
     /> 
    </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="Service1Behavior"> 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true"/> 
     </behavior> 
     <behavior> 
      <serviceMetadata httpGetEnabled="true"/> 
      <serviceDebug includeExceptionDetailInFaults="false"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
    </system.serviceModel> 
</configuration> 

だけ私もコードでバインディングを設定しようServiceReferences.ClientConfig

<configuration> 
    <system.serviceModel> 
     <bindings> 
     <basicHttpBinding> 
      <binding name="BasicHttpBinding_IService1" maxBufferSize="2147483647" 
        maxReceivedMessageSize="2147483647"> 
       <security mode="None" /> 
      </binding> 
     </basicHttpBinding> 
     </bindings> 
     <client> 
      <endpoint address="http://localhost:1772/Service1.svc" 
       binding="basicHttpBinding" 
       bindingConfiguration="BasicHttpBinding_IService1" 
       contract="ServiceReference1.IService1" 
       name="BasicHttpBinding_IService1" /> 
     </client> 
    </system.serviceModel> 
</configuration> 

を持っている:

BasicHttpBinding binding = new BasicHttpBinding(); 
binding.MaxReceivedMessageSize = 2147483647; 
binding.MaxBufferSize = 2147483647; 

EndpointAddress endpointAddress = new EndpointAddress("http://localhost:1772/Service1.svc"); 

Service1Client proxy = new Service1Client(binding, endpointAddress); 

私は本当にこれを修正する方法を知らない...それはサーバーdのように見える私のweb.configファイルを使用しないでください???その場合、どうすれば更新できますか?

答えて

0

これは本当に問題であることを確認する必要があります。開始するには、サーバー上のWCFトレースをオンにして(http://blogs.msdn.com/b/madhuponduru/archive/2006/05/18/601458.aspx)、エラーが表示されていることを確認します。

+0

小さい画像をアップロードできます(65kb未満) –

+0

多くのクォータ設定があります。サーバトレースをオンにすることができれば、それがどんなものかを正確に知ることができます。 –

0

すべては一見OKらしい - あなたのサービス名が奇数であるので、私は多分あなたのサービスの設定を直感ピックアップされていないた以外....

あなたが持っている:

<service name="Service1" > 

あなたのサービスクラス(サービス契約を実装しているサービスクラス)は本当にちょうどService1と呼ばれ、ネームスペース内には存在しませんか?

<service>ノードname=属性の値は、あなたのサービスクラスのタイプの正確完全修飾名でなければならない - そうほとんどの場合、それはこのようなものになるだろう:

<service name="MyNamespace.Service1" > 

または何.NET名前空間

その名前が一致しない場合、WCFランタイムは意志でService1クラスの生活はサービス設定を使用せず、WCFのデフォルトにフォールバックします。これは小さなファイルでは機能する理由を説明しますが、大きなファイルでは失敗します。

+0

名前はService1です。私のプロジェクト名(名前空間)はInstantMessengerWebServiceです。

+0

@TuanPham: ' ...'に変更するとどうなりますか?あなたはエラーが発生しますか?もしそうなら:**何**エラー? –

関連する問題