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!
Können Sie Ihre Frage mit der genauen Fehlermeldung aktualisieren? Sie können es wahrscheinlich im Ereignisprotokoll auf dem Server finden. –
Der Gedanke, dass, wenn Sie azurblauen Speicher verwenden, warum JSON verwenden? Es gibt dichtere Serialisierer ... Das würde die Payload etwas reduzieren. –