この最初の質問は申し訳ありませんが、フォーマットがまだ完全ではない場合。異なる環境のAspx
私はMSMQを介して通信する小さなアプリを持っていたので、そのmsmqの内容を監視するaspxウェブページを作ることにしました。
私は受付サーバーでそのページをテストしましたが、正常に動作します。 しかし、私がprodサーバでテストすると、msmqが空でない場合、 "MSMQモニタリングのサーバエラー:このメッセージを読むことができるフォーマッタが見つかりません"というエラーページが表示されます。
は、ここでは、コードの該当部分です:
@{
var errorMessage = "";
string queueName = ".\\Private$\\cotfollowupqueue";
System.Messaging.MessageQueue myqueue = new System.Messaging.MessageQueue(@queueName);
System.Messaging.Message[] msgs = new System.Messaging.Message[0];
try {
msgs= myqueue.GetAllMessages();
}
catch (Exception ex)
{
errorMessage = "An error occured : " + ex.Message.ToString();
}
myqueue.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(AwaitingOrder_DTO) });
}
@section featured {
<section class="featured">
<div class="content-wrapper">
<hgroup class="title">
<h1>@Page.Title .</h1>< br/>
<h2>Content of the MSMQ</h2>
</hgroup>
<p>This table will show you the content of the MicroSoft Message Queuing used for COT Follow Up.</p>
<p>
<!-- ADD THINGS HERE -->
@errorMessage
<table border="1">
<tr>
<td>COT ID</td>
<td>Row ID</td>
<td>Number of attempts</td>
<td>Next attempt at</td>
<td>Cot Message</td>
<td>Status</td>
<td>Success</td>
</tr>
@foreach (var msg in msgs)
{
myqueue.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(AwaitingOrder_DTO) });
var message = (AwaitingOrder_DTO)msg.Body;
<tr>
<td>@message.COTID</td>
<td>@message.rowId</td>
<td>@message.numberOfRetries</td>
<td>@message.nextAttempt</td>
<td>@message.cotMessage</td>
<td>@message.status</td>
<td>@message.success</td>
</tr>
}
</table>
</p>
</div>
</section>
}
コード1つのサーバーから他へコピーパスタがあり、かつ展開が同じ方法で正確に行われていました。誰でも私はこれを修正するために見ることができるか知っていますか?
私は解決策を探しましたが、:私はフォーマッターを持っているので、問題はないようです。 コードは別のサーバーで動作するので、コード自体とは関係なく環境に関係していると思います。 私は、ページが「注文待ち」と「キューライター」の定義を持っているところで「定義に行きましょう」とチェックしています。それは「メタデータから」ページに送られて、キューの作成者が直接のメタデータにない場合でも、そのページはmsmqにメッセージを送信でき、その内容を読み取ることはできないため、疑いの余地はありません。
は
プロダクションサーバに、あなたが期待している構造ではないメッセージがあるように思えますが、これを確認する方法はありますか? –
このキューは1つのプログラムでのみ使用され、キューには何もありません。 私はページが最小限のメッセージを作成してそれをmsmqに送信することができ、メッセージは正しく送信されますが、キューが空でないとすぐに、いくつかのテストを行った。 – DoctorPrisme
http://stackoverflow.com/questions/655276/message-queue-error-cannot-find-a-formatter-capable-of-reading-message? – brijber