2009-07-20 7 views
0

メッセージをMSMQに送信するためのWCFサービスを作成しました。実行するとメッセージが送信されたように見えますが、キューを見てもそこにはありません。私は確認して、キューはトランザクションキューではありません。誰もがメッセージを送信できるようにセキュリティは公開されていますが、セキュリティを設定する他の場所があるのでしょうか?ここで私が使用しているコードです。WCFサービスを使用してMSMQにメッセージを送信する

Dim mq As MessageQueue 
Dim msg As Message 
Dim queueName As String = "webdevbvm.labsafety.com\emailsubscriptions" 

Try 
    msg = New Message("Test") 
    msg.Priority = MessagePriority.Highest 

    If (MessageQueue.Exists(queueName)) Then 
     mq = New MessageQueue(queueName) 
    msg.ResponseQueue = mq 
    msg.UseJournalQueue = True 
    msg.Label = "Test Message" 
    msg.Body = "This is only a test" 
    mq.Send(msg) 
    Console.WriteLine("Message sent.") 
    End If 
Catch ex As MessageQueueException 
    Console.WriteLine("MSMQ Error: " + ex.ToString()) 
Catch ex As Exception 
    Console.WriteLine("Error: " + ex.ToString()) 
Finally 
    mq.Close() 
End Try 

エラーは発生しませんが、プログラムを実行しているマシンからの送信キューのメッセージが表示されます。キューが存在することを示しています。存在しないキュー名に変更すると、IF文には入りませんので、キューにファイルが送信されていないことがわかります。もし私がラップトップ上でローカルにプログラムを実行していると、それが送信しているキューはWindows 2003サーバー上で実行されています。

+0

「メッセージ送信済み」と表示されますか?あなたのconsole.writelineコマンドから? –

+0

キューが存在しない場合はどうなりますか?ルーロウ......ブーム。 (psst:存在しない場合は、キューを作成するためのチェックを追加するか、エラーとして処理する)。 –

+0

WCF関連のタグを削除しました – SteveC

答えて

1

ご回答をありがとう絞りかすを私が行われるために必要なものを考え出しました。基本的には間違ったキュー名を使用していました。キュー名の前に "FormatName:DIRECT = OS:"がありませんでした。一度私はそれを置くことは行くことが良かった。再度、感謝します。

ロバート

+0

ロバート、これが答えであれば、それを答えとして受け入れる必要があります。 –

+0

申し訳ありません、それを忘れてしまいました。念押し有難う。 – Robert

2

私にWCFサービスのようにしていません - あなたのキューにメッセージを送信するためにベースSystem.Net.Messaging APIを使用しているようです....

使用する方法を確認するには、これらのリンクのいくつかをチェックアウトWCFは、MSMQにメッセージを送信します

マルク・

+0

これはwcfサービスで行われています – Robert

+2

なぜwcfサービスはメッセージをMSMQに直接ドロップしますか? –

+1

なぜWCFサービスから送信されないのですか?** WCFを使用していますか? –

関連する問題