net aumentar asp c# wcf wcf-binding

aumentar - maxreceivedmessagesize c#



WCF service maxReceivedMessageSize basicHttpBinding issue (3)

¿El nombre de su clase de servicio es realmente IService (en el espacio de nombres del servicio)? Lo que probablemente tenía originalmente era una discrepancia en el nombre de la clase de servicio en el atributo de name del elemento <service> .

Parece que no puedo hacer que mi servicio WCF acepte grandes cantidades de datos que se envían a él.

Configuré el maxReceivedMessageSize para el cliente y podría recibir grandes datos sin problemas, ese no es el problema. Está enviando datos al servicio.

Intenté configurar el servicio pero no tuve suerte. Aquí está mi web.config:

<?xml version="1.0"?> <configuration> <system.web> <compilation debug="true"/> </system.web> <system.serviceModel> <behaviors> <serviceBehaviors> <behavior> <serviceMetadata httpGetEnabled="true"/> <serviceDebug includeExceptionDetailInFaults="false" /> <serviceDiscovery /> </behavior> </serviceBehaviors> </behaviors> <services> <service name="Service.IService"> <clear /> <endpoint binding="basicHttpBinding" bindingConfiguration="MessageSizeBasic" contract="Service.IService" /> </service> </services> <bindings> <basicHttpBinding> <binding name="MessageSizeBasic" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"> <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="16348" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> </binding> </basicHttpBinding> <webHttpBinding> <binding name="MessageSizeWeb" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" /> </webHttpBinding> </bindings> </system.serviceModel> <system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer> </configuration>


Al eliminar el nombre de su enlace, se aplicará a todos los puntos finales y se obtendrán los resultados deseados. Como tal:

<services> <service name="Service.IService"> <clear /> <endpoint binding="basicHttpBinding" contract="Service.IService" /> </service> </services> <bindings> <basicHttpBinding> <binding maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"> <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="16348" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> </binding> </basicHttpBinding> <webHttpBinding> <binding maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" /> </webHttpBinding> </bindings>

También tenga en cuenta que bindingConfiguration atributo bindingConfiguration del nodo del punto final. De lo contrario, obtendrías una excepción.

Esta misma solución se encontró aquí: Problema con grandes solicitudes en WCF


Al usar HTTPS en lugar de ACTIVAR el enlace, httpsTransport EN el enlace con la etiqueta httpsTransport :

<binding name="MyServiceBinding"> <security defaultAlgorithmSuite="Basic256Rsa15" authenticationMode="MutualCertificate" requireDerivedKeys="true" securityHeaderLayout="Lax" includeTimestamp="true" messageProtectionOrder="SignBeforeEncrypt" messageSecurityVersion="WSSecurity10WSTrust13WSSecureConversation13WSSecurityPolicy12BasicSecurityProfile10" requireSignatureConfirmation="false"> <localClientSettings detectReplays="true" /> <localServiceSettings detectReplays="true" /> <secureConversationBootstrap keyEntropyMode="CombinedEntropy" /> </security> <textMessageEncoding messageVersion="Soap11WSAddressing10"> <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="16384"/> </textMessageEncoding> <httpsTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" maxBufferPoolSize="2147483647" requireClientCertificate="false" /> </binding>