Pregunta

Me puede trabajar con muchos enlaces de WCF, excepto netMsmqBinding. Todo lo que consigo es:

CommunicationObjectFaultedException: "El objeto de comunicación, System.ServiceModel.ServiceHost, no puede ser utilizado para la comunicación, ya que es en el estado de fallo"

a System.ServiceModel.Channels.CommunicationObject.Close (TimeSpan tiempo de espera)

Lo he probado en un servidor Windows 2008 R2 con características instaladas lo siguiente

  • Message Queue
  • Message Queuing Server
  • Message Queue Server Servidor
  • Message Queue disparadores
  • Compatibilidad con HTTP
  • La multidifusión Soporte
  • Message Queue Server Proxy DCOM

Me trató también añadir manualmente una cola de mensajes privados en el Administrador del servidor, pero no funcionó.

Estoy utilizando un servicio de Windows para alojar mi MSMQ. Mi contrato de servicios es

namespace MyCompany.Services
{
[ServiceContract(Name = "ServiceName",
                     Namespace = "http://MyCompany/ServiceName")]
public interface IServiceName
{
    [OperationContract(IsOneWay = true)]
    void Insert(MyData[] data);
}
[DataContract]
public class MyData
{
    [DataMember]
    public DateTime DateTime { get; set; }
    [DataMember]
    public double Lat { get; set; }
    [DataMember]
    public double Lon { get; set; }
    [DataMember]
    public TimeSpan Timespan { get; set; }
    [DataMember]
    public Guid Id { get; set; }
    [DataMember(IsRequired = false)]
    public int? Category { get; set; }
}
}

Y mi app.config contiene

  <endpoint
      address="net.msmq://localhost/private/ServiceName"
      binding="netMsmqBinding"
      contract="MyCompany.Services.IServiceName"
      bindingConfiguration="tolerant"
      behaviorConfiguration="tolerant"
      />

y

<netMsmqBinding>
  <binding name="tolerant"
         maxReceivedMessageSize="2147483647"
         >
    <readerQuotas maxArrayLength="2147483647" />
    <security mode="None"/>
  </binding>
</netMsmqBinding>
¿Fue útil?

Solución

El mejor punto de partida sería la entrada de blog en tres partes de Tom Hollander:

y tienen un aspecto bueno en la documentación de MSDN en colas en WCF - un montón de cosas allí, también

El error que está recibiendo indicaría algún problema con el canal de comunicación - algo salió mal, el canal ha sido "falla", es decir, inutilizables. Hay un montón de razones por las que podría suceder, que es muy difícil de diagnosticar desde lejos con casi cualquier información.

Consulte los recursos y ver si eso ayuda a que uno o dos pasos más - si no, tendremos que conseguir mucho más información de usted

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top