2010-12-15 5 views
1

Vielen Dank!Wie konfiguriert man die Nachrichtengröße für eine WCF-Web-Rolle (Derzeit erhalten HTTP-Fehlercode 500)

Wir konnten lösen dieses Problem einfach durch Ändern des Bindungselementnamens von "basicHttpBinding" zu "webHttpBinding".

Albern, ich weiß ..


Hallo,

Ich versuche, eine Web-Rolle mit WCF zu implementieren, die JSON-Objekte erhalten und speichern sie in der Azure-Speicher. Während der Integrationstests bekam ich einen 400 Fehlercode. Ich entdeckte dann, dass WCF eine sehr kleine Nachrichtengröße hat (~ 65535), und dass ich es konfigurieren muss, um größer zu sein. Die Konfiguration, die ich gerade verwende, verursacht einen Fehlercode von 500, wenn ich versuche, eine HTTP-Anfrage an meinen Dienst zu senden (die Anfrage erreicht niemals meinen Code).

Die Datei Web.config Ich benutze sieht wie folgt aus:

<?xml version="1.0" encoding="UTF-8"?> 

    <system.web> 

    <compilation debug="true" targetFramework="4.0" /> 

    </system.web> 

    <system.serviceModel> 

    <diagnostics> 

     <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxSizeOfMessageToLog="5000000" /> 

     <endToEndTracing activityTracing="false" /> 

    </diagnostics> 

    <services> 

     <service name="MyWebRole.RequestHandler" behaviorConfiguration="RequestHandlerbehavior"> 

     <endpoint address="http://localhost:9001/" binding="basicHttpBinding" bindingConfiguration="conf" name="MyDefaultEndpoint" 

           contract="MyWebRole.IRequestHandler" /> 

     </service> 

    </services> 

    <bindings> 

     <basicHttpBinding> 

     <binding name="conf" maxBufferSize="5000000" maxReceivedMessageSize="5000000" useDefaultWebProxy="true"> 

      <readerQuotas maxDepth="5000000" maxStringContentLength="5000000" maxArrayLength="5000000" maxBytesPerRead="5000000" maxNameTableCharCount="5000000" /> 

     </binding> 

     </basicHttpBinding> 

    </bindings> 

    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 

    <behaviors> 

     <serviceBehaviors> 

     <behavior name="RequestHandlerbehavior"> 

      <serviceMetadata httpGetEnabled="true" /> 

      <serviceDebug includeExceptionDetailInFaults="true" /> 

     </behavior> 

     </serviceBehaviors> 

    </behaviors> 

    </system.serviceModel> 

    <system.webServer> 

    <modules runAllManagedModulesForAllRequests="true" /> 

    </system.webServer> 

</configuration> 

Können Sie mir bitte helfen, meine Wünsche durchkommen auf meine WCF-Dienst?

Danke!

+0

Können Sie Ihre Frage mit der genauen Fehlermeldung aktualisieren? Sie können es wahrscheinlich im Ereignisprotokoll auf dem Server finden. –

+0

Der Gedanke, dass, wenn Sie azurblauen Speicher verwenden, warum JSON verwenden? Es gibt dichtere Serialisierer ... Das würde die Payload etwas reduzieren. –

Antwort

0

Haben Sie versucht, die Empfangsgröße der Nachricht auf Ihrer Bindung zu erhöhen? wie ... Solche

MaxReceivedMessageSize = „1048576“

Verwandte Themen