2010-05-04 3 views
2

netMsmqBinding을 제외한 많은 WCF 바인딩을 사용할 수 있습니다. 내가 얻는 것은 :WCF에서 MSMQ를 사용하는 방법?

CommunicationObjectFaultedException : "통신 객체 인 System.ServiceModel.ServiceHost는 오류 상태이기 때문에 통신에 사용할 수 없습니다."

System.ServiceModel.Channels.CommunicationObject.Close에서

(시간 범위 제한 시간)

나는 다음과 같은 기능이 설치되어있는 Windows Server 2008 R2의 그것을 시도

  • 메시지를 메시지 큐 큐 서비스
  • 메시지 큐 서버
  • 메시지 큐 트리거
  • HTTP 지원
  • 멀티 캐스팅 지원
  • 메시지 큐 DCOM 프록시

내가 서버 관리자에서 수동으로 개인 Message Queue를 추가 할 수도 시도했지만 작동하지 않았다.

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> 

답변

5

가장 좋은 출발점이 포함되어

Queues in WCF에 대한 MSDN의 문서에서 좋은 모습을 -이 물건을 많이, 너무!

오류가 발생하면 통신 채널에 문제가 있음을 나타낼 수 있습니다. 무엇인가 문제가 발생했거나 채널에 "오류가 발생했습니다", 즉 사용할 수 없게 렌더링되었습니다. 몇 가지 이유가있을 수 있습니다. 정보가 거의없는 상태에서 진단하기가 정말 어렵습니다.

리소스를 확인하고 그 단계가 2 단계 이상 도움이되는지 확인하십시오. 그렇지 않은 경우 더 많은 정보를 얻으셔야합니다.

+0

게시물에 설명 된대로'MSMQ Active Directory 도메인 '을 설치하지 않았습니다. 나는 그것이 보안없이 일하기를 원한다. –

+0

나는 finnaly를 설치했지만, 도움이되지 않았다. 윈도우 서비스에서 호스팅하는 것을 중단하고 마침내 IIS로 옮길 것입니다. –

관련 문제