none
mtom .Error al recibir la respuesta HTTP a http://.. RRS feed

  • Pregunta

  • hola de nuevo grupo: Estoy trabando con wcf y mtom, una aplicacion para archivos(subir/bajar)

    estaba probando el metodo para bajar

    Error al recibir la respuesta HTTP a http://localhost/WebH.ServiceHost/EndPoints/ArchivoService.svc.
     Puede deberse a que el enlace del extremo de servicio no usa el protocolo HTTP. También puede deberse a que el servidor anula un contexto de solicitud HTTP (posiblemente por el cierre del servicio).
     Consulte los registros del servidor para obtener más información.

    mi contrato es asi :

     [ServiceContract(ConfigurationName = "WebH.Archivos.Contracts.IArchivoService", Name = "IArchivoService")]
        public partial interface IArchivoService
      {
        [OperationContract()]
       
         ArchivoTraerPorIdResponse ArchivoTraerPorId(int archivoId);

      }

    ArchivoTraerPorIdResponse es el datacontract que me devuelve :

    El datacontract lo tengo  en otra clase asi:( el mensaje para bajar el archivo )

     

    /// <summary>
    
    /// Descripcion : solo trea la imagen por id de prestador
    
    /// </summary>
    
    
    [DataContract]
    
    public class PrestadorArchivoTraerPorIdResponse
    
    {
    
    [DataMember(Order = 0)]
    
    public Stream FileData;
    
    }
    
    }
    
    

    el webconfig del host el binding lo tengo asi

    <

    basicHttpBinding

    >

    <

    binding name="BasicHttpBindingConfig"

    />

    <

    binding name="ArchivoServicesBinding" transferMode="StreamedRequest" maxBufferSize="65536"

     

    maxReceivedMessageSize="2000000000" messageEncoding="Mtom" receiveTimeout="00:10:00" sendTimeout="00:10:00"

    >

    </

    binding

    >

    </

    basicHttpBinding>

     

     

    <

    service behaviorConfiguration="metadataAndDebug" name="WebH.Services.Server.ArchivoService"

    >

    <

    endpoint binding="basicHttpBinding" bindingConfiguration="ArchivoServicesBinding" contract="WebH.Archivos.Contracts.IArchivoService" behaviorConfiguration="SBehavior"

    /

     

     

    martes, 26 de julio de 2011 15:13

Respuestas

  • Hola Sebastian:

     

    Te has acordado de actualizar el cliente, si has hecho cambios en el servidor. Creo que ese puede ser tu problema actual. De todas formas aprende a trazar los servicios que ahorran muchísimo tiempo.

     

    Saludos,


    phurtado
    • Marcado como respuesta sebastian viga martes, 26 de julio de 2011 18:08
    martes, 26 de julio de 2011 17:47

Todas las respuestas

  • Hola Sebastian:

     

    Veo un par de cosas raras por una parte el contrato del servicio en el metodo ArchivoTraerPorId devuelve TraerPorIdResponse y luego el DataContract le llamas PrestadorArchivoTraerPorId, no se si eso es así o es un error al escribir el mensaje, pero eso me parece muy raro.

     

    No se si has utilizado las trazas en servicios WCF. Te voy a pasar unos link para que veas como se hace y abriendo el archivo de traza con SvcTraceViewer.exe se ve bastante más claro este tipo de errores , o por lo menos nos dan más información.

    http://msdn.microsoft.com/en-us/library/ms733025.aspx,  

     

    http://msdn.microsoft.com/en-us/library/ms732023.aspx

     

    Con estos link podras configurar el servicio para  ver los registros del servidor.

    Necesito más información, ya te he comentado lo que veo raro. El resto es difícil de determinar con la información que pasas.


    phurtado
    martes, 26 de julio de 2011 17:03
  • hola pedro , gracias por responder

    si me equivoque

    el contrato es :

    [

    OperationContract()]
     

     

    PrestadorArchivoTraerPorIdResponse PrestadorArchivoTraerPorId(int archivoId);

     

    y el datacontract

    [

    DataContract

    ]

     

    public class

    PrestadorArchivoTraerPorIdResponse

    {

    [

    DataMember(Order = 0)]

     

     

     

     

    public Stream

    FileData;

    }

    la clase PrestadorArchivoTraerPorIdResponse cambie recien por :

    [DataContract]

     

    public class PrestadorArchivoTraerPorIdResponse

    {

    [

    MessageBodyMember

    ]

     

     

    public Stream

    FileData;

    }

    y no me lanzo el error  anterior , llego hasta el servidor ,solo que lo que devuelve del servidor es null , estuve debagueando y me llega al servicio carga el stream pero cdo llega hasta el clienteweb esta en null.

    Voy a probar las trazas con la herramienta que me comentaste arriba .

    Lo resuelvo y te paso el feebback

    Gracias.

     

    martes, 26 de julio de 2011 17:24
  • Hola Sebastian:

     

    Te has acordado de actualizar el cliente, si has hecho cambios en el servidor. Creo que ese puede ser tu problema actual. De todas formas aprende a trazar los servicios que ahorran muchísimo tiempo.

     

    Saludos,


    phurtado
    • Marcado como respuesta sebastian viga martes, 26 de julio de 2011 18:08
    martes, 26 de julio de 2011 17:47
  • ok  lo miro gracias.
    martes, 26 de julio de 2011 19:22
  • Tuve un mensaje de error similar en un sistema que hacía dos años que funcionaba correctamente y no recibía cambios.

    Investigando bastante encontramos que el problema se dió al recibir un dato de la base de datos con la letra "Ñ", y al compartir esa información a través de un web service generaba el error que se está discutiento en ese hilo.

    Simplemente la idea era dejar plasmado que este mensaje de error es bastante genérico, y son múltiples las razones que lo pueden disparar.

    Espero que este comentario les sirva a muchos!

    Saludos

    miércoles, 12 de septiembre de 2012 17:16