Frage

kann ich mit vielen WCF-Bindungen arbeiten, außer netMsmqBinding. Alles, was ich bekommen ist:

CommunicationObjectFaultedException: „Das Kommunikationsobjekt, System.ServiceModel.ServiceHost, kann nicht für die Kommunikation verwendet werden, da es in dem Fehlerzustand ist“

bei System.ServiceModel.Channels.CommunicationObject.Close (Timespan timeout)

Ich habe versucht, es in einem Windows Server 2008 R2 mit den folgenden installierten Funktionen

  • Message Queuing
  • Message Queuing-Dienste
  • Message Queuing Server
  • Message Queuing-Trigger
  • HTTP-Unterstützung
  • Multicastingunterstützung
  • Message Queuing DCOM Proxy

Ich habe auch versucht, manuell eine private Message Queue im Server-Manager hinzuzufügen, aber es hat nicht funktioniert.

Ich bin mit einem Windows-Dienst meines MSMQ hosten. Mein Service-Vertrag ist

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; }
}
}

Und meine app.config enthält

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

und

<netMsmqBinding>
  <binding name="tolerant"
         maxReceivedMessageSize="2147483647"
         >
    <readerQuotas maxArrayLength="2147483647" />
    <security mode="None"/>
  </binding>
</netMsmqBinding>
War es hilfreich?
scroll top