問題タブ [brokeredmessage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
890 参照

azure - Azure Service Bus キュー - BrokeredMessage によるシリアル化

メッセージ本文にオブジェクトを含むキュー メッセージを送信しようとしましたが、次の行で BrokeredMessage を使用して例外を受け取りました

例外メッセージ -データ コントラクト名 'Survey: http://schemas.datacontract.org/2004/07/namespace ' を持つタイプ '.Survey'は想定されていません。DataContractResolver の使用を検討するか、既知の型のリストに静的に認識されていない型を追加します。たとえば、KnownTypeAttribute 属性を使用するか、DataContractSerializer に渡される既知の型のリストにそれらを追加します。

これらは私が持っているモデルです -

問題の特定にご協力ください。

0 投票する
2 に答える
646 参照

servicebus - Windows Server のサービス バス: メッセージの自動転送時に BrokeredMessage の EnqueuedTimeUtc は変更されますか?

現在、Windows Server の Service Bus でいくつかのテストを行っており、いくつかのパフォーマンス テストにBrokeredMessageクラスのEnqueuedTimeUtcプロパティを使用しています。私のアプリケーションコード)。

トピックとキューの構成では、自動転送を設定して、サブスクリプションからキューにメッセージを自動的に転送します。

測定値を正しく解釈するには、BrokeredMessage のEnqueuedTimeUtc元のメッセージが送信された時刻を表しているのか、それともメッセージがキューに転送された時刻を表しているのかを知る必要があります。

それはどれですか?トピックの最初のエンキュー時刻ですか、それともキューの 2 番目のエンキューですか?

0 投票する
0 に答える
151 参照

c# - Azure トピック サブスクリプションが 50 KB を超えるメッセージを受信しない

単一のサブスクリプションを持つ単純なトピックがあります。メッセージのサイズを小さくしておくと (50kb 以下で問題ありません)、一貫して受信メッセージを送信できます。

50kb を超える大きなサイズのメッセージを送信しようとすると、メッセージは正常に送信されますが、受信されません。

メッセージは配信不能キューにありません。メッセージを放棄し、数回再試行した後、そのサブキューからメッセージを受信しましたが、これらのメッセージもそこに表示されません。

メッセージは実にシンプルです。

特定のサイズのメッセージの作成は次のとおりです。

最後に、64kb のメッセージを送信して失敗させると、以降のすべてのメッセージが受信されなくなります。

送受信のコードは非常に「こんにちは」ですが、参考になればもっと投稿できます。

この質問は私の問題と非常によく似ていますが、答えはありません。サブスクリプションを削除することは有効な解決策とは思えません。 Azure トピックからメッセージを受信すると null が生成され、トピックには未読メッセージがあります

0 投票する
1 に答える
951 参照

c# - Brokeredmessage Microsoft Service Bus キュー ReceiveBatch がすべてのデッド レター メッセージを取得していない

Microsoft Service Bus でデッド レター キューを使用してプロジェクトをテストしています。私は 26 個のメッセージ (アルファベットを表す) を送信し、メッセージを受信すると、メッセージの一部を無作為にデッド レター キューに入れるプログラムを使用します。メッセージは常にデッド レター キューからピーク モードで読み取られるため、そこに到達するとそこにとどまります。数回実行すると、26 個のメッセージすべてが配信不能キューに入れられ、常にそこに残ります。

ただし、それらを読み取るときは、いくつか (たとえば 6 つ) だけが読み取られることもあれば、26 個すべてが読み取られることもあります。

次のコマンドを使用します。

タイムアウトのある ReceiveBatch のオーバーロードがありますが、これは役に立たず、おそらく複雑さを増すだけです。

「ピーク」モードで使用され、メッセージがそこにとどまっているため、毎回 26 個のメッセージすべてを取得しないのはなぜですか。

「Service Bus Explorer」を使用して、すべてのメッセージが配信不能キューにあり、そこに残っていることを実際に確認できます。

これは主にテストの例ですが、「ReceiveBatch」が非常に(悪い)ランダムな方法ではなく、決定論的なモードで機能することを願っています...

0 投票する
2 に答える
374 参照

c# - Service Bus Queue タスクのマッピング方法タスクへ

Service Bus Queue 用のアダプターを使用しています。したがって、戻り値の型に Queue のクラスを使用しないでください。しかし、私はReceiveAsync()方法にこだわっています。どうすればマッピングできますTask<BrokeredMessage> to Task<MyAdapterClass>か?

ここにアダプタクラスがありますBrokeredMessage

そして、私はこのような方法が欲しい

Driver プロジェクトでは、次のようなタスクを使用したいと考えています。