none
Devolver listas de datos desde WCF al cliente RRS feed

  • Pregunta

  • Hola,

    Tengo una función en un servicio web WCF que devuelve un listado (Binding<List>) de la base de datos.

    El problema es que si la consulta devuelve muchos registros (800 filas), me da este error en el cliente:
    "Se superó la cuota de tamaño máximo para los mensajes entrantes (65536). Para aumentar la cuota, use la propiedad MaxReceivedMessageSize en el elemento de enlace correspondiente."

    He intentado cambiar este parámetro en el web.config del servidor y me ha quedado así (Suponiendo que el servicio se llama Servicio1).

    <connectionStrings>
        <add name="CADENA_CONEXION" connectionString="Data Source=yyy;Persist Security Info=True;UID=xxxx;pwd=xxxx;" providerName="System.Data.OracleClient"/>
      </connectionStrings>

    <system.serviceModel>
        <services>
          <service name="Servicio1" behaviorConfiguration="Servicio1Behavior">
            <endpoint contract="IServicio1" binding="wsHttpBinding" bindingConfiguration ="wsHttpBinding_IServicio1"
             address="http://localhost/nombre/ServiceServicio1.svc"/>
          </service>
        </services>


        <bindings>
          <wsHttpBinding>
             <binding name="SecureMessage"
                       maxReceivedMessageSize="2000000"/>
          </wsHttpBinding>
        </bindings>


        <behaviors>
        <serviceBehaviors>
                <behavior name="Servicio1Behavior">
                      <serviceMetadata httpGetEnabled="true"/>
                      <serviceDebug includeExceptionDetailInFaults="true"/>
                </behavior>
        </serviceBehaviors>
        </behaviors>
    </system.serviceModel>

    <system.web>
        <compilation debug="true" />
        <customErrors mode="Off"/>
       
        <authentication mode="Windows" />
       
        <authorization>
          <!-- No permitir acceso a usuarios anonimos -->
          <deny users="?" />
        </authorization>
       
    </system.web>


    ¿Cómo lo puedo solucionar para poder devolver varios registros de la base de datos al cliente?

    Gracias

    Saludos
    viernes, 1 de febrero de 2008 12:07

Respuestas

  •  

    "Se superó la cuota de tamaño máximo para los mensajes entrantes (65536). Para aumentar la cuota, use la propiedad MaxReceivedMessageSize en el elemento de enlace correspondiente."

    El que recive los datos es el cliente... debes cambiar ese parametro en el binding del lado del cliente.

     

     

     

    viernes, 1 de febrero de 2008 13:10

Todas las respuestas


  • Perdón, antes me he equivocado al copiar.

    Queda así:

    <connectionStrings>
        <add name="CADENA_CONEXION" connectionString="Data Source=yyy;Persist Security Info=True;UID=xxxx;pwd=xxxx;" providerName="System.Data.OracleClient"/>
      </connectionStrings>

    <system.serviceModel>
        <services>
          <service name="Servicio1" behaviorConfiguration="Servicio1Behavior">
            <endpoint contract="IServicio1" binding="wsHttpBinding" bindingConfiguration ="wsHttpBinding_IServicio1"
             address="http://localhost/nombre/ServiceServicio1.svc"/>
          </service>
        </services>


        <bindings>
          <wsHttpBinding>
             <binding name="
    wsHttpBinding_IServicio1"
                       maxReceivedMessageSize="2000000"/>
          </wsHttpBinding>
        </bindings>


        <behaviors>
        <serviceBehaviors>
                <behavior name="Servicio1Behavior">
                      <serviceMetadata httpGetEnabled="true"/>
                      <serviceDebug includeExceptionDetailInFaults="true"/>
                </behavior>
        </serviceBehaviors>
        </behaviors>
    </system.serviceModel>

    <system.web>
        <compilation debug="true" />
        <customErrors mode="Off"/>
       
        <authentication mode="Windows" />
       
        <authorization>
          <!-- No permitir acceso a usuarios anonimos -->
          <deny users="?" />
        </authorization>
       
    </system.web>


    viernes, 1 de febrero de 2008 13:05
  •  

    "Se superó la cuota de tamaño máximo para los mensajes entrantes (65536). Para aumentar la cuota, use la propiedad MaxReceivedMessageSize en el elemento de enlace correspondiente."

    El que recive los datos es el cliente... debes cambiar ese parametro en el binding del lado del cliente.

     

     

     

    viernes, 1 de febrero de 2008 13:10

  • Hola,

    Me ha ido bien. Lo he cambiado en el cliente y me ha dejado devolver más datos.
     
    Muchas gracias

    Saludos
    martes, 5 de febrero de 2008 7:35
  • podrias mostrar el xml con la linea que incluiste? gracias
    miércoles, 11 de marzo de 2009 12:42
  • Ami tambien me gustaria ver el xml, ya que tengo un problema parecido y nomas no me queda..

    saludos y gracias

    jueves, 6 de mayo de 2010 16:30