2017-02-07 2 views
0

J'ai un problème lié à l'erreur 413 Entité de demande trop grande lorsque j'essaie d'envoyer des données plus volumineuses via le service WCF. J'ai changé la configuration en ajoutant maxReceivedMessageSize et quelques autres mais cela n'a pas aidé. Ci-dessous je coller ma config: Config côté serveur:WCF (413) Demander l'entité trop grande - également après avoir changé la configuration

<system.serviceModel> 
<services> 
    <service behaviorConfiguration="BasicBehavior" name="xxx"> 
    <endpoint address="" behaviorConfiguration="EndpointBehavior" bindingConfiguration="BasicBinding" 
     binding="basicHttpBinding" name="GenerateDocuments" contract="xxx" /> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
    </service> 
</services> 
<bindings> 
    <basicHttpBinding> 
    <binding name="BasicBinding" sendTimeout="00:05:00" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"> 
     <readerQuotas maxDepth="2000000" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
     <security mode="None"> 
     <transport clientCredentialType="None"/> 
     </security> 
    </binding> 
    </basicHttpBinding> 
</bindings> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="BasicBehavior"> 
     <serviceMetadata httpGetEnabled="true"/> 
     <serviceDebug includeExceptionDetailInFaults="true"/> 
    </behavior> 
    </serviceBehaviors> 
    <endpointBehaviors> 
    <behavior name="EndpointBehavior"> 
    </behavior> 
    </endpointBehaviors> 
</behaviors> 

Et voici ma config lie côté client (sur config client est créé par programme):

BasicHttpBinding binding = new BasicHttpBinding(); 
binding.Name = "BasicBinding"; 
binding.SendTimeout = new TimeSpan(0, 5, 0); 
binding.Security.Mode = BasicHttpSecurityMode.None; 
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None; 
binding.MaxBufferPoolSize = 2147483647; 
binding.MaxBufferSize = 2147483647; 
binding.MaxReceivedMessageSize = 2147483647; 
binding.ReaderQuotas.MaxDepth = 2000000; 
binding.ReaderQuotas.MaxStringContentLength = 2147483647; 
binding.ReaderQuotas.MaxArrayLength = 2147483647; 
binding.ReaderQuotas.MaxBytesPerRead = 2147483647; 
binding.ReaderQuotas.MaxNameTableCharCount = 2147483647; 

Et enfin service d'appels clients:

GenerateDocumentsClient service = new GenerateDocumentsClient(ConnectionManager.GetBinding(), ConnectionManager.GetEndpoint(MainFields.DatabaseRegister)) 

J'ai également changé l'attribut uploadReadAheadSize mais cela n'a pas aidé non plus. Je n'ai aucune idée de ce que je peux faire pour bien faire les choses. Je serai reconnaissant pour toute aide.

Répondre

0

essayer ce service dans le web.config (befor system.serviceModel):

<system.web> 
     <httpRuntime maxRequestLength="2147483647" /> 
    </system.web> 
    <system.webServer> 
    <security> 
     <requestFiltering> 
       <requestLimits maxAllowedContentLength="2147483647"></requestLimits> 
      </requestFiltering> 
     </security> 
    </system.webServer> 
+0

Cela n'a pas aidé non plus. Je l'ai configuré plus tôt dans IIS :(​​ – SleepCoding

+0

l'essayer après l'édition – naro

0

OK, ce sujet peut être fermé. J'ai trouvé la raison vraiment stupide pourquoi je ne pourrais pas faire ainsi le problème est résolu.

+0

Si la question n'est plus pertinente, vous pouvez le supprimer, puisque vous l'avez demandé. – Tim