質問

私は多くのWCFバインディングで作業することができますが、除く netMsmqBinding. 。私が得るのは:

CommunicationObjectFaultedException:「通信オブジェクト、System.ServicEmodel.ServiceHostは、障害状態にあるため、通信に使用できません。」

System.ServiceModel.Channels.CommunicationObject.Close(TimeSpan Timeout)で

Windows Server 2008 R2で試してみました。次の機能がインストールされています

  • メッセージキューイング
  • メッセージキューイングサービス
  • メッセージキューインサーバー
  • メッセージキューイングトリガー
  • HTTPサポート
  • マルチキャストサポート
  • メッセージキューイングdcomプロキシ

また、サーバーマネージャーにプライベートメッセージキューを手動で追加しようとしましたが、機能しませんでした。

Windowsサービスを使用してMSMQをホストしています。私のサービス契約はです

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

そして、私のapp.configが含まれています

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

<netMsmqBinding>
  <binding name="tolerant"
         maxReceivedMessageSize="2147483647"
         >
    <readerQuotas maxArrayLength="2147483647" />
    <security mode="None"/>
  </binding>
</netMsmqBinding>
役に立ちましたか?

解決

最良の出発点は、トム・ホランダーの3部のブログ投稿です。

そして、MSDNドキュメントをよく見てください WCFのキュー - そこにもたくさんのものがあります!

あなたが取得しているエラーは、通信チャネルの問題を示します - 何かがうまくいかなかったため、チャネルは「障害」されており、つまり使用できませんでした。多くの理由が起こる可能性がありますが、それはほとんど情報ではなく、遠くから診断するのが本当に難しいです。

リソースをチェックして、それがあなたに1つか2つのステップに役立つかどうかを確認してください - そうでない場合は、あなたからもっと多くの情報を取得する必要があります!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top