- PR -

MSMQの操作

1
投稿者投稿内容
moto
会議室デビュー日: 2003/12/21
投稿数: 12
投稿日時: 2004-01-23 11:08
こんにちは、Motoです。
いつもお世話になっております。
MSMQ3.0を使って簡単なテストアプリケーションを作成し勉強しているのですが
原因がわからないエラーのため悩んでいます。
どなたか教えてください。
【環境】
・Windows XP pro
・IIS5.0
・SharpDevelop
・C#
・MSMQ3.0
・専用キューをコンピュータの管理画面から作成。(トランザクション)

【アプリの機能】
・送るボタンを押したら、MSMQにデータを送る
・受取るボタンを押したら、MSMQからデータを受取る

【現象】
ビルド時に、using System.Messaging;を先頭で宣言して、Messageクラスを使用しているところで、あいまいな参照です。とエラーがでる。

【コード(抜粋)】
※WindowsFormにテキストボックス1つ、ボタン2つの簡単な画面
void BtSendClick(object sender, System.EventArgs e)
{
 MessageQueue myQueue = new MessageQueue(".\\private$\\motoQ");
 if (myQueue.Transactional == true)
 {
  myQueue.Send("My Message Data.", new MessageQueueTransaction());
 }
}

void BtReciveClick(object sender, System.EventArgs e)
{
 MessageQueue myQueue = new MessageQueue(".\\Private$\\motoQ");
myQueue.Formatter = new XmlMessageFormatter(new Type[] {typeof(String)});
MessageQueueTransaction myTransaction = new MessageQueueTransaction();
myTransaction.Begin();
 Message myMessage = myQueue.Receive(myTransaction);
 String myOrder = (string)myMessage.Body;
 this.textBox.Text = myOrder;
myTransaction.Commit();
}


【備考】
コードはMSDNのサンプルから抜粋し、一部変更したものです。
また、上記BtSendClickイベントは実行できるのですが、コンピューターの管理(メッセージキュー)をみても、何も追加さえれていないので、正しく実行されているのかわかりません。僕のイメージではSendコマンド実行後、コンピューターの管理(メッセージキュー)の方に何か表示されるのではないかと期待していたのですが、MSMQ初心者で正しい動作がわからないため、判断できなかったです。


【解決したいこと】
・あいまいな参照ですのエラーがなぜでるのか
・Sendと、Reciveの使い方はあっているのか

どなたかよろしくお願いします。
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-01-26 10:16
Messageクラスは
System.Web.Services.Description.Messageクラスと
System.Messaging.Messageクラス
があるのでusingの指定によってはどっちか判断つかなくなる場合があります。

Messageの部分をSystem.Messaging.Messageと置き換えてみてください
1

スキルアップ/キャリアアップ(JOB@IT)