2

を除いて、多くのWCFバインディングを操作できますnetMsmqBinding。私が得るのは:

CommunicationObjectFaultedException: "通信オブジェクトSystem.ServiceModel.ServiceHostは、Faulted状態であるため、通信に使用できません。"

System.ServiceModel.Channels.CommunicationObject.Close(TimeSpanタイムアウト)で

次の機能がインストールされたWindowsServer2008R2で試してみました

  • メッセージキュー
  • メッセージキューサービス
  • メッセージキューサーバー
  • メッセージキューのトリガー
  • 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>
4

1 に答える 1

5

最良の出発点は、TomHollanderの3部構成のブログ投稿です。

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

発生するエラーは、通信チャネルに問題があることを示しています。問題が発生したか、チャネルに「障害」が発生したか、使用できなくなった可能性があります。発生する可能性のある理由はたくさんありますが、情報がほとんどないため、遠くから診断するのは非常に困難です。

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

于 2010-05-04T21:29:11.110 に答える