問題タブ [msmqintegrationbinding]
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.
wcf - 非トランザクション キューで MsmqIntegrationBinding を使用するにはどうすればよいですか?
これは私のサービス契約です:
これは私のクラスです
このコードでポートを開こうとすると、エラーが発生します
System.InvalidOperationException が発生しました Message="コントラクト 'ISecurityMasterChanged' の操作 'ValidateCusipInMessage' は、TransactionAutoComplete が true に設定され、TransactionScopeRequired が false に設定されて構成されています。TransactionAutoComplete では、TransactionScopeRequired が true に設定されている必要があります。" ソース="System.ServiceModel"
ご覧のとおり、TransactionAutoComplete が true に設定されていないため、これは私には意味がありません。
wcf - MSMQIntegrationBinding を使用した WCF がキューからメッセージを取得しない
MSMQ を使用する送信ポートを持つ BizTalk 2006 アプリがあります。
また、いくつかのWCFサービスを備えたWCF winformsホスティングアプリもあります(開発環境では、運用環境ではホスティングとしてWindowsサービスを使用しています)。
私が作成した WCF サービスの 1 つに MSMQIntegrationBinding があります (BizTalk は WCF サービスではないため、NetMSMQBinding は使用できません)。
ジャーナル オプションを有効にしたため、メッセージがリモート キューに正しく配置されていることがわかります。ジャーナル キューにメッセージが表示されますが、キューが空で、WCF サービスがメッセージを取得していません。
この問題を解決するためにどこを見ればいいのか、誰かに手がかりを教えてもらえますか?
(編集1):このトピックについてさらに調査を行いました:
- MSMQ を使用して BizTalk 2006 R2 と通信する場合は、MSMQIntegrationBinding を使用する必要があります。これは、NetMSMQBinding が WCF-to-WCF 専用であるためです。
- だから私はMSMQIntegrationBindingに固執しています
- MSMQIntegration バインディングは DataContract シリアライザーを使用しません。代わりに、MsmqMessageSerializationFormat プロパティに基づいてデータをシリアル化します。そのデフォルト値は MsmqMessageSerializationFormat.Xml で、これは XmlSerializer が使用されることを意味します。この背後にある理論的根拠は、msmq 統合トランスポートがネイティブ MSMQ / System.Messaging アプリケーションと相互運用するように特別に設計されていることです。
- MSMQIntegration バインディングは単純な古い XmlSerializer を使用するため、svcutil.exe を使用してデータ クラスを生成する簡単な機能はありません。だから私は手動でデータコントラクトクラスを作成する必要があります....pffffffffffff
(参照: http://social.msdn.microsoft.com/Forums/en/wcf/thread/2d48fe90-5c2a-4156-8a3f-2e21d5638fa1およびhttp://www.danrigsby.com/blog/index.php/2008 /03/07/xmlserializer-vs-datacontractserializer-serialization-in-wcf/ )
(編集2):
WCF サービスからの診断トレース データを確認したところ、逆シリアル化例外が原因でメッセージが削除されました。唯一の解決策は、手動で datacontract クラスを作成することです...
(編集 3): svcutil.exe の代わりに xsd.exe ツールを使用して datacontract クラスを作成したため、ここでは手作りの作業はありません ;-) したがって、結論は、パラメーターとして使用されるデータ コントラクト クラスに xsd.exe を使用することです。 WCF サービス メソッドで。これは、MSMQIntegrationBinding により、既定の DataContractSerializer ではなく XMLSerializer を使用して、すべての datacontract 型をシリアル化できるようにする必要があるためです。
wcf - msmqIntegrationBinding でワークフロー サービスを使用する
msmqIntegrationBinding を使用するワークフロー サービスの設定に苦労しています。私が今抱えている問題は、このシリアライゼーション例外が常に発生することです。 MSMQ メッセージの XML 本文の逆シリアル化中に、メッセージを受信できません。サービス コントラクトが適切な [ServiceKnownType] 属性で装飾されているか、MsmqIntegrationBindingElement に TargetSerializationTypes プロパティが設定されていることを確認してください。
私が理解している限りでは、サービス コントラクトとワークフローの両方でジェネリック型MsmqMessage<MyMessageType>を使用しているにもかかわらず、シリアル化ヘルパーはメッセージをシリアル化する型を見つけることができないということです。
MyMessageTypeは、xsd.exe を使用して .xsd から生成されます。
更新: 問題 は解決しましたワークフローで行うのではなく、コントラクト (インターフェイス) で WCF (Action、ServiceKnownType...) のすべての設定を行いました。ワークフローに移動すると、すべてが機能し始めました!!
c# - WCFMsmqIntegrationBinding-キューからメッセージを選択しない
キュー(MSMQ)にメッセージを書き込んでいるレガシークライアントがあります。WCFサービスを使用して、キューからXMLメッセージを取得したかったのです。私はいくつかのMSFTドキュメントに従い、他の例をざっと見てみましたが、それを機能させることができないようです。サービスホストは起動していますが、プロセスを起動せず、キューからメッセージを選択していません。ほとんどの場合、ユーザーエラーですが、何がわからないだけです。
キューにメッセージが表示されますか?
コード例:
App Config:
私が間違っていることがわかりませんか?
--S
c# - WCF MsmqIntegrationBinding - リモート キュー
WCF MsMqIntegrationBinding を使用しており、メッセージをリモート キューに書き込もうとしています。Hugh と John Breakwell のおかげで、通常の Messaging 呼び出しだけを使用して書き込みを行うことができましたが、WCF で MsmqIntegrationBinding を使用しようとすると、リモート キューに入れることができないようです。エラーメッセージは表示されません。表示されないだけです。
useSourceJournal を追加して、問題の特定に役立つかどうかを確認しました。
何か案は?
メッセージをキューに書き込むコード。キューがローカルの場合に機能します...リモートではありません:
アプリ構成:
任意の提案をいただければ幸いです。
ありがとう、
S
c# - MsmqIntegrationBinding のメッセージ エンコーディングを変更する
MsmqIntegrationbinding で WCF を使用して MSMQ にメッセージを投稿しようとしています。送信は機能しますが、キューに送信されたメッセージを見ると. エンコーディングが正しくありません。
メッセージのエンコーディングを UTF-16 に変更することはできますか? カスタムバインディングを使用してこれを解決しようとしました。これは私の問題を解決しませんでした。以下に使用したカスタムバインディングを貼り付けました。
c# - MSMQ、メッセージはキューに入れられて消えますが、サービス契約によって取得されることはありません
ローカルプライベートキューがあります。また、msmqIntegrationBindingを使用してキューをリッスンするMVCアプリケーション内にWCFサービスがあります。問題は、メッセージがキューに入れられたときにサービスコントラクトが呼び出されないが、メッセージがすぐに消えることです。メッセージはポイズンキューにありません。これが、キューへのバインディングを宣言するconfig-partです。
そしてここに契約があります:
そして、これがサービスのメソッドです:
メッセージが消えるのにサービスを呼び出さない理由について何か提案はありますか?
.net - WCF を使用したトランザクション MSMQ でメッセージを有害として明示的にマークするにはどうすればよいですか?
MSMQ バージョン 4 を使用しており、トランザクション キューがあります。着信メッセージのキューをリッスンするために WCF を使用しています。
処理中は、障害が発生したり、長期間使用できなくなったりする可能性のあるサード パーティ製コンポーネントに依存しています。これを補うために、MSMQ 4 ( http://msdn.microsoft.com/en-us/library/aa395218.aspx ) の有害メッセージ処理機能を使用して、 y時間の待機時間でx回メッセージを再試行します。
ただし、特定の状況では、入力メッセージが無効/毒されていることがわかっています。これが発生した場合、例外をスローすると、メッセージは他のすべてのメッセージと同じように有害なメッセージ処理ルーチンに従い、すべての再試行と待機時間が発生します。しかし、メッセージが有害であることがわかっている場合、再試行して、有害なキューによって処理されるまで構成された時間待機する理由がわかりません。
メッセージを明示的に有害としてマークして、構成された再試行フローに従わず、すぐに有害キューに移動する方法はありますか?
wcf - リモートプライベートキューからプルしようとすると、リモートコンピューターが利用できません
問題なく書き込むことができるリモートプライベートキューがあります。処理のためにデータをプルするために、WASでホストされるWCFサービスを作成しようとしています。サービスをキューとは別のマシンに配置する必要があります。私は現在、ライティングサービスと同じサイトにあります-同じアプリプールですが、異なるアプリケーションです。
私がターゲットにしているキューは呼び出されPersistenceService/Log.svc
、トランザクションで認証されます。私のサービスはで実行されていhttp://appdev.me.com/PersistenceService/Log.svc
ます。以下に私のエンドポイントとバインディングが含まれています:
私が得るエラーは以下の通りです:
トラフィックをブロックしないようにマカフィーをシャットダウンして、通信の道を切り開きました。キューへのANONYMOUSLOGONアクセスを一時的に許可しましたが、キューに書き込んでいるのと同じユーザーとしてアクセスする必要があり、そのユーザーはキューに対する完全な権限を持っています。
WCFトレースは、このエラー以外は何も明らかにしません。どこを見ればよいかについてのアイデアは大歓迎です。