3

このことについて投稿して申し訳ありませんが、それは私のナットを運転しています。私はVS2010のWCF4 RESTテンプレートでルートを使用しています。私はmaxreceivedmessagesizeプロパティをいくつかの膨大な数に設定しましたが、サービスにxmlを送信しようとするとHTTPステータスコード400が返されます。私はトレースをオンにし、メッセージはデフォルトのメッセージサイズに設定されていることを伝えます。これは私のweb.configをどのように設定しているかに問題があると考えています。誰かがそれを急いで見て、彼らが何を考えているか教えてもらえますか?WCF 4 RESTサービスの適切な構成は何ですか?

私はこれを周りにしてきました。余分な目が私にとって大きな利益となるでしょう。前もって感謝します!

<?xml version="1.0"?> 
<configuration> 

    <system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
    </system.web> 

    <system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"> 
     <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    </modules> 
    </system.webServer> 

    <system.serviceModel> 

    <bindings> 
     <webHttpBinding> 
     <binding name="" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" transferMode="Streamed" openTimeout="00:25:00" closeTimeout="00:25:00" sendTimeout="00:25:00" receiveTimeout="00:25:00" maxBufferSize="2147483647"> 
      <readerQuotas maxDepth="64" 
       maxStringContentLength="2147483647" 
       maxArrayLength="2147483647" 
       maxBytesPerRead="2147483647" 
       maxNameTableCharCount="2147483647"/> 
     </binding> 
     </webHttpBinding> 
    </bindings> 

    <behaviors> 
     <serviceBehaviors> 
     <behavior name=""> 
      <serviceMetadata httpGetEnabled="true" /> 
      <dataContractSerializer maxItemsInObjectGraph="9000000"/> 

      <serviceDebug includeExceptionDetailInFaults="true" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 


    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/> 
    <standardEndpoints> 
     <webHttpEndpoint> 
     <!-- 
      Configure the WCF REST service base address via the global.asax.cs file and the default endpoint 
      via the attributes on the <standardEndpoint> element below 
     --> 
     <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" maxReceivedMessageSize="2147483647" transferMode="Streamed" maxBufferPoolSize="2147483647" maxBufferSize="2147483647"/> 
     </webHttpEndpoint> 
    </standardEndpoints> 
    </system.serviceModel> 

    <system.diagnostics> 
    <sources> 
     <source name="System.ServiceModel" 
       switchValue="Information, ActivityTracing" 
       propagateActivity="true"> 
     <listeners> 
      <add name="traceListener" 
       type="System.Diagnostics.XmlWriterTraceListener" 
       initializeData= "c:\logs\Traces.svclog" /> 
     </listeners> 
     </source> 
    </sources> 
    </system.diagnostics> 

</configuration> 

答えて

0

OK、私はそれを理解しました。問題は実際にクライアント上にありました。私はhttp投稿で提出しようとしていたオブジェクトをシリアライズしていませんでした。私はテストサーバー上のサービスに対してそれをチェックしたときに、xmlを投稿用に修正したところ、正しく動作しています。ありがとう!

+0

私は同じ問題に直面しています。私はまだ解決策を見つけられませんでした。もっと具体的にしてください。あなたが「http投稿で提出しようとしていたオブジェクトをシリアライズしていない」と言うとき。それを修正するために正確に何をしましたか? – Arti

0

あなたのOperationContract属性はどのように見えますか? WebMessageFormat.XmlのRequestFormatとResponseFormatを設定しましたか? また、BodyStyleはWebMessageBodyStyle.WrappedRequestである必要があります

エントリがないので、私はあなたがIISでそれを実行していると仮定しています。 その場合は、正しく設定された.svcファイルがあることを確認してください。

また、URLが実際にwcfサービスを指していることを確認するために、global.asaxをチェックすることもできます。私はちょうど推測していますが、メッセージサイズのプロパティではないと確信しています。

関連する問題