問題タブ [system.transactions]

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 に答える
426 参照

c# - System.Transactions の未処理の例外により、ネットワークが不安定なときに Windows サービスが停止する

NServiceBus.Host.exeホスト プロセスを使用して、NServiceBus ベースのサービスを実行しています。

過去数か月間に 2 回、Windows サービスが突然停止し、アプリケーション イベント ログに次のイベントが記録されました。

アプリケーション: NServiceBus.Host.exe フレームワーク バージョン: v4.0.30319 説明: 未処理の例外のため、プロセスが終了しました。例外情報: System.InvalidOperationException スタック: System.Transactions.TransactionState.ChangeStatePromotedPhase0(System.Transactions.InternalTransaction) で System.Transactions.Phase0VolatileDemultiplexer.InternalPrepare() で System.Transactions.VolatileDemultiplexer.PoolablePrepare(System.Object) で System.Transactions .Oletx.OletxVolatileEnlistment.Prepare(System.Transactions.Oletx.Oletx.OletxVolatileEnlistmentContainer) で System.Transactions.Oletx.OletxPhase0VolatileEnlistmentContainer.Phase0Request(Boolean) で System.Transactions.Oletx.OletxTransactionManager.ShimNotificationCallback(System.Object, Boolean) で System.Threading。 _ThreadPoolWaitOrTimerCallback.

このエラーは、ネットワークが不安定な状態が数分間続いたときに発生しました (たとえば、log4net ログ ファイルに表示されるデータベースに対する多数のタイムアウト)。

ここで何が失敗しているのかについてのアイデアはありますか?

log4net ログファイルに致命的なエラーはありません。

バージョン:

  • Windows Server 2008 R2
  • .NET フレームワーク 4.5.2
  • NServiceBus 4.7.5
  • NHibernate 3.3.3.4001 (サガ、サブスクリプション、およびタイムアウトの永続化に使用)
  • SQL Server 2012
0 投票する
0 に答える
486 参照

.net - Cross-AppDomain 呼び出し後に Transaction.Current が null になるのはなぜですか?

次の小さなプログラムを考えてみましょう。単純にTransactionScope, 印刷を作成し、Transaction.Current別の AppDomain のメソッドを呼び出し (実行に時間がかかります)、戻ったときに印刷Transaction.Currentします。

まったく予想外に、プログラムは次の出力を生成します。

TransactionScopeAsyncFlowOptionの ctor をTransactionScopeに変更するとTransactionScopeAsyncFlowOption.Suppress、トランザクションは呼び出し後に残ります。

私の疑いでは、論理コンテキスト全体のトランザクション スコープ フローは、リモーティング呼び出し全体に伝播される CallContext によって処理され、使用されるキーは継承MarshalByRefObjectされ、どのキーにも登録されていないためISponsor、プロキシは最初のリース時間の後に切断されます。そして、呼び出しから戻ると、論理呼び出しコンテキストが元のコンテキストにマージされます。つまり、トランザクションは存在しなくなります。

この問題を回避する方法を探しています。また、これが .NET のバグと見なされる場合は?

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

visual-studio-2017 - エラー CS0234 タイプまたは名前空間名 'Transactions' が名前空間 'System' に存在しません (アセンブリ参照がありませんか?)

VS2015 から VS2017 Professional にアップグレードしたところ、VS2015 で正常にビルドされていたソリューションが、次のエラーで VS2017 でビルドできなくなりました。

エラー CS0234: 型または名前空間名 'Transactions' が名前空間 'System' に存在しません (アセンブリ参照がありませんか?)

System.Transactions のリファレンスを見ると、正しい場所を指しています

誰かがこの問題を解決しましたか?