0

그래서이 이상한 문제가 발생했습니다. 인증되지 않은 트랜잭션 msmq에서 메시지를 받으려고합니다. 내 환경은 다음과 같습니다.MSMQ 원격 수신 오류 "지정한 형식 이름이 요청한 작업을 지원하지 않습니다."

  • 큐가 Windows Server 2012 R2 인 서버. 이것은 또한 클라이언트 응용 프로그램은 또한 내가 (잘 작동) MSMQ에 SQL 서버에서 메시지를 보내려고하고 2012 R2

윈도우 서버입니다 설치되어있는 DB 서버 (SQL 서버)

  • 서버입니다. 그러나 클라이언트 응용 프로그램이 아래 코드를 사용하여 메시지를 수신하려고하면 제목에서 언급 한 오류가 발생합니다.

    private void OnPeekCompleted(object sender, PeekCompletedEventArgs args) 
        { 
         MessageQueue mq = (MessageQueue)sender; 
         if (mq != null) 
         { 
          try 
          { 
           if (Log.IsInfoEnabled) 
           { 
            Log.InfoFormat("[{0}] Starting processing message queue {1}", _endpoint.RouteName, _queue.QueueName); 
           } 
           mq.EndPeek(args.AsyncResult); 
           MessageQueueTransaction transaction = new MessageQueueTransaction(); 
           transaction.Begin(); 
           Message message = mq.Receive(transaction); 
           ... // omitted for simplicity 
    

    나는 그러므로 나는 내가 확인했다

    SQL

    에서 큐에 메시지를 전송하고 있기 때문에 다음과 같은 DB 서버에서 메시지 큐를하는 데 필요한 DB 서버에서 클라이언트 서버에 액세스 할 수 없습니다 :

    1. 없음 N/
    2. 않은 authenitcated RPC 호출은 서버 간의 접근성 문제 승 SQL에서 메시지를 전송하는 없음 문제 메시지 대기열 서버 보안 등록 정보에서 활성화합니다.
    3. 대기열 형식이 정확합니다. 직접 OS 형식을 사용하고 있습니다. 컴퓨터 이름 대신 IP 주소를 지정하는 TCP 형식으로 시도했습니다.

    그러나 아무 소용이 없습니다. 어떤 아이디어?

    감사

    이 이전에 근무하고 작동이 중지되었습니다 경우
  • +0

    대기열 주소 란 무엇입니까? –

    +0

    이전에이 작업을 수행했는데 작업을 중단 했습니까? –

    답변

    0

    , 당신의 문제점은 보낸 사람 또는 수신기, 방화벽, 또는 두 가지 모두에 변화 중 하나에 DTC의 변화에 ​​거의 확실하다.

    이 ... 큐 컴퓨터와 네트워크 DTC 액세스를 사용하는 클라이언트 컴퓨터를 모두 구성 :

    this guidance에 따르면, 당신이해야 할 수 있습니다.

    ... 구성 Windows 방화벽 예외 목록에 MS DTC를 추가 할 수 있습니다. 이 일한 적이있는 경우

    , 그것은 여러 가지 다른 문제 중 하나가 될 수 있지만, here을 언급 한 바와 같이 MSMQ 채택 최적의 패러다임이 전송입니다 즉, 원격는 "최적의 메시징 모델의 일부가 아닌"입니다 읽기 -remote, read-local. 원격 읽기를 사용하지 않도록 아키텍처를 변경하십시오.

    +0

    감사합니다. Tom. 나는 당신이 원격 읽기에 대해 듣고 그것의 권장 모델을 이해합니다. 우리는 SQL 스케줄 된 작업을 생성하여 애플리케이션에서 부하를 많이 빼앗아 가고 메시지 큐에 메시지를 보내는 SP를 실행하려고합니다.문제는 DB 서버에서 응용 프로그램 서버에 액세스 할 수 없기 때문에 대기열이 Db 서버에 있어야하고 응용 프로그램 서버에서 원격 읽기를 수행 할 수 있기를 바랍니다. 내가 제안한대로 DTC 설정 및 방화벽 설정을 확인하려고합니다. 감사 – Jinish