none
Error "El servidor remoto devolvió una respuesta inesperada: (413) Request Entity Too Large" al consumir un Servicio WCF RRS feed

  • Pregunta

  • Buen día. Tengo una aplicación que lee un archivo y lo envía a un servicio WCF. AL invocar el método me genera el error El servidor remoto devolvió una respuesta inesperada: (413) Request Entity Too Large. Revisando por la web y las diferentes opciones como cambiar los uploadReadAheadSize, maxRequestEntityAllowed, maxRequestLength no lo soluciona. Alguna idea? Anexo el codigo:

    Dim bytes As Byte() = System.IO.File.ReadAllBytes("C:\Muestras\CFb64.pdf")
    		Dim file As String = Convert.ToBase64String(bytes)
    
    		Dim bytes2 As Byte() = System.IO.File.ReadAllBytes("C:\Muestras\CFb64.txt")
    		Dim file2 As String = Convert.ToBase64String(bytes2)
    
    
    		Dim Res As Boolean = objServicio.Eform(file,
    											  file2,
    											  "Prueba1",
    											  "Prueba2",
    											  "Prueba3", "Prueba4",
    											  "Prueba5")

    Y como esta el binding en el web.config:

    <system.serviceModel>
    	  <bindings>
        <basicHttpBinding>
         <binding name="BasicHttpBinding_WCFService" />
        </basicHttpBinding>
       </bindings>
        <client>
          <endpoint address="http://localhost:1054/WCFService.svc"
            binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_WCFService"
            contract="TerySignService.WCFService" name="BasicHttpBinding_WCFService" />
        </client>
      </system.serviceModel>

    Gracias

    viernes, 5 de febrero de 2021 14:30

Respuestas

  • Y si eso no funciona, modifica el binding

    <binding name="BasicHttpBinding_IServicio" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
              <readerQuotas maxDepth="32" maxStringContentLength="2147483647"
                maxArrayLength="16348" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
            </binding>
          



    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Marcado como respuesta EricRRModerator martes, 16 de febrero de 2021 17:06
    viernes, 5 de febrero de 2021 18:03

Todas las respuestas

  • Hola, el servicio es tuyo o es de terceros? Porque si es de terceros la modificación debería realizarse ahí.

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    viernes, 5 de febrero de 2021 16:06
  • Hola Segio. EL servicio tambien es mio. Debo configurar algo en el ?
    viernes, 5 de febrero de 2021 16:38
  • Básicamente las propiedades de web.config que has comentado en tu pregunta pero en el web.config de tu servicio

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    viernes, 5 de febrero de 2021 16:48
  • Sergio mira como esta por defecto el web.config del servicio.

    <?xml version="1.0"?>
    <configuration>
      <appSettings>
        <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true"/>
      </appSettings>
      <system.web>
        <compilation debug="true" strict="false" explicit="true" targetFramework="4.7.2"/>
        <httpRuntime targetFramework="4.7.2" maxRequestLength="102400000" />
        <pages>
          <namespaces>
            <add namespace="System.Runtime.Serialization"/>
            <add namespace="System.ServiceModel"/>
            <add namespace="System.ServiceModel.Web"/>
          </namespaces>
        </pages>
      </system.web>
      <system.serviceModel>
        <behaviors>
          <serviceBehaviors>
            <behavior>
              <!-- Para evitar revelar información de los metadatos, establezca los valores siguientes en false antes de la implementación -->
              <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
              <!-- Para recibir detalles de los errores de la excepción para la depuración, establezca el valor siguiente en true. Establézcalo en false antes de la implementación para evitar revelar información de la excepción -->
              <serviceDebug includeExceptionDetailInFaults="true"/>
            </behavior>
          </serviceBehaviors>
        </behaviors>
        <protocolMapping>
          <add binding="basicHttpsBinding" scheme="https"/>
        </protocolMapping>
        <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
      </system.serviceModel>
      <system.webServer>
    
        <modules runAllManagedModulesForAllRequests="true"/>
    
        <directoryBrowse enabled="true"/>
    	  
      </system.webServer>
    </configuration>

    Que debería agregar que no me queda claro . Gracias

    viernes, 5 de febrero de 2021 17:06
  • Vale, veo que tienes esto en tu servicio
    <httpRuntime targetFramework="4.7.2" maxRequestLength="102400000" />

    Ponlo también en tu cliente.

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    viernes, 5 de febrero de 2021 17:13
  • Tambien esta ... mira el cliente:

    <?xml version="1.0" encoding="utf-8"?>
    
    <!--
      Para obtener más información sobre cómo configurar la aplicación ASP.NET, visite
      https://go.microsoft.com/fwlink/?LinkId=169433
      -->
    <configuration>
      <system.web>
        <compilation debug="true" strict="false" explicit="true" targetFramework="4.7.2"/>
        <httpRuntime targetFramework="4.7.2" maxRequestLength="102400000"  />
      </system.web>
      <system.codedom>
        <compilers>
          <compiler language="c#;cs;csharp" extension=".cs"
            type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
            warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701"/>
          <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
            type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
            warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/>
        </compilers>
      </system.codedom>
    	
      <system.serviceModel>
    	  <bindings>
        <basicHttpBinding>
         <binding name="BasicHttpBinding_ITerySignService" maxReceivedMessageSize="2147483647" />
        </basicHttpBinding>
       </bindings>
        <client>
          <endpoint address="http://localhost:1054/TerySignService.svc"
            binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ITerySignService"
            contract="TerySignService.ITerySignService" name="BasicHttpBinding_ITerySignService" />
        </client>
      </system.serviceModel>
    </configuration>

    viernes, 5 de febrero de 2021 17:23
  • Hola Nelson,

    Gracias por levantar tu consulta en los foros de MSDN.

    Eric Ruiz

    ____________________________

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactar MSDNFSF@microsoft.com.

    viernes, 5 de febrero de 2021 17:25
    Moderador
  • Prueba a poner esto en tu web.config

    <system.web>
         <httpRuntime executionTimeout="999999" maxRequestLength="102400000" />
         ...
    </system.web>
    <system.webServer>
    <security>
      <requestFiltering>
    	<requestLimits maxAllowedContentLength="2000000000" />
      </requestFiltering>
    </security>
    </system.webServer>


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    viernes, 5 de febrero de 2021 18:01
  • Y si eso no funciona, modifica el binding

    <binding name="BasicHttpBinding_IServicio" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
              <readerQuotas maxDepth="32" maxStringContentLength="2147483647"
                maxArrayLength="16348" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
            </binding>
          



    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Marcado como respuesta EricRRModerator martes, 16 de febrero de 2021 17:06
    viernes, 5 de febrero de 2021 18:03
  • Sergio una cosita ... El servicio tiene como referencia una dll hecha en Fox Pro a 32 bits. Eso podría influir en el error?
    viernes, 5 de febrero de 2021 20:27
  • Hola,  seguro al 100% no estoy, pero por tener una referencia a esa dll no tendría que dar problemas

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    viernes, 5 de febrero de 2021 21:28