2010-12-15 69 views
1

Merci à tous!Comment configurer la taille du message pour un rôle Web WCF (Obtenir le code d'erreur HTTP 500 actuellement)

Nous avons pu résoudre ce problème simplement en changeant le nom de l'élément de liaison de "basicHttpBinding" à "webHttpBinding".

idiot, je sais ..


Bonjour,

Je suis en train de mettre en œuvre un rôle Web en utilisant WCF, qui recevra des objets JSON et les stocker dans le stockage Azure. Pendant les tests d'intégration, j'ai reçu un code d'erreur 400. J'ai alors découvert que WCF a une très petite taille de message (~ 65535), et que j'ai besoin de le configurer pour être plus grand. La configuration que j'utilise actuellement provoque un code d'erreur 500 chaque fois que j'essaie d'envoyer une requête HTTP à mon service (la demande n'atteint jamais mon code).

Le fichier web.config J'utilise ressemble à ceci:

<?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> 

Pouvez-vous s'il vous plaît me aider à mes demandes par le biais de mon service WCF?

Merci!

+0

Pouvez-vous mettre à jour votre question avec le message d'erreur exact? Vous pouvez probablement le trouver dans le journal des événements sur le serveur. –

+0

L'idée est que si vous utilisez le stockage azure, pourquoi utiliser JSON? Il y a des sérialiseurs plus denses ... Cela réduirait quelque peu la charge utile. –

Répondre

0

Avez-vous essayé d'augmenter la taille de réception du message sur votre liaison? Tels que ...

maxReceivedMessageSize = "1048576"