問題タブ [workflow-foundation-4.5]
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.
workflow - AppFabric がホストするワークフローは、遅延/アンロード後に常にリロードされるわけではありません
IIS でホストされ、AppFabric 1.1 を使用する WCF Windows ワークフロー (4.5) ワークフロー サービスがあります。ワークフロー インスタンスは長時間 (最大約 1 週間) 実行されますが、多くの時間は遅延アクティビティに費やされます。
これは最初は問題なく動作するように見えましたが、ワークフローの複数のインスタンスを同時に実行すると (インスタンスが 2 つ以上あるとこの問題が発生します)、遅延ステップ中にメモリからアンロードされると、一部のインスタンスが起動しません。ログを見ると、見つかったエラーはすべて次のようになります。
残念ながら、そのエラー メッセージに関する有益な情報は見つかりません。
AppFabric Persisted Instances テーブルの SuspensionExceptionName および SuspensionReason フィールドは、System.NullReferenceException: オブジェクト参照がオブジェクトのインスタンスに設定されていないことを示しています。しかし、これはワークフロー内では発生せず、外部でのみ発生します。
追加情報:
- Fire & Forget としてアクティビティを実行しています (受信アクティビティ、送信なし)
- 私のワークフローは、データを取得するために他の WCF サービスを呼び出します。
- これをServer 2012 R2、IIS 8(Azureではない)で実行しています
- ワークフローの持続性が機能しています。IIS をリセットして再起動できます... 2 つのインスタンスを実行したときに問題が発生しました。
- 私は間違いなく、いかなる種類のスロットリング制限にも達していません。ワークフローは数 MB のデータを処理しますが、この問題は 2 つ以上のインスタンスで発生します。
ここで何が起こっているのでしょうか?
編集:問題がどのように機能するかについてより多くの情報を見つけ、それを質問に追加しなかったことに気付きました。遅延の問題が発生すると、静的変数が 2 つのスレッドによって書き込まれるように動作します。
視覚化は次のとおりです。
誰かが尋ねる前に...コード内のすべての静的変数、メソッド、クラスを取り除きました。もう何も静的ではありません。
workflow-foundation - ReceiveAndSendReply が相関初期化子を使用するのはなぜですか?
ReceiveAndSendReply アクティビティ ファクトリを使用すると、CorrelationHandle を使用して、Receive アクティビティ、SendReply アクティビティ、および Receive アクティビティの要求と応答の相関イニシャライザを取得します。
この相関は何のために必要ですか?Request-Reply Correlationによると:
Receive/SendReply ペアは、ワークフロー サービスで双方向操作を実装するために使用されます。ランタイムは、要求と応答の関連付けを使用して、応答が正しい呼び出し元にディスパッチされるようにします。ワークフロー サービスの場合のように、ワークフローが WorkflowServiceHost を使用してホストされている場合は、デフォルトの相関初期化で十分です。
と
Receive アクティビティは、WorkflowServiceHost によってホストされるワークフロー サービスでのみ使用できますが、Send と Send/ReceiveReply のペアは、Web サービスでメソッドを呼び出す必要があるワークフローで使用できます。
Receive/SendReply を WorkflowServiceHost でのみ使用でき、明示的な要求と応答の相関の初期化が WorkflowServiceHost で必要ない場合、相関初期化子とハンドルを単純に削除できますか? それとも、私が見ていないいくつかの利点がありますか?
SendAndReceiveReply ファクトリについて質問しているわけではありません。これもリクエストとリプライの相関イニシャライザを使用していますが、その必要性は理解できると思います。
私は Workflow Foundation を使い始めたばかりなので、明らかな答えをすでに除外していると思い込まないでください。やってみましたが、見落としがあるかもしれません。私がリンクしたページには、明示的な相関初期化子を使用した Receive/SendReply ペアの例も含まれています。そこにも利点は見られません。
c# - ワークフローの永続性を有効にすると、OperationContext.Current が null になる
私は WF 4.5 と Devart dotConnect (永続化のため) を使用しています。net.Tcp
を使用してプロトコルで WorkflowService をホストしていますWorkflowServiceHost
。IncomingMessageHeaders
の情報を送信していますOperationContext.Current
。永続性を有効にするまでは、すべて問題なく動作します。永続性が有効になるとすぐOperationContext.Current
にnull
. なぜこれが起こっているのかわからず、 と の両方のデータOperationContext
がPersistence
必要です。ここに私の設定があります
Behaviors.config:
この動作を使用することは可能ですが、コメントを外してnull に設定するとOperationContext.Current
すぐに。oracleTracking
oracleInstanceStore
OperationContext.Current
助けてください!!!
c# - ワークフロー マネージャー 1.0 は実行可能ですか?
私が取り組んでいる会社は新しいプロジェクトを開発します。このプロジェクトでは、Web UI によって消費されるプロセス フロー システムにWindows Workflow Foundation 4.5 (変更できません) が使用されます。私たちの主な使用例は、UI に複数のステップがある注文の支払いであり、すべての状態遷移で、提供された値が有効である場合、UI はワークフロー インスタンスに通知します。もしそうなら、それは永続化されます。( http://examples.donnywals.com/angular-splitform/のように) ワークフローは IIS でホストされるように設計されており、ワークフローに関するすべての操作 (アップロード、削除、インスタンスの管理) は REST API からアクセスできる必要があります。また、ワークフローの xaml ファイルはデータベースに保存する必要があります。バージョン管理、追跡、追跡、およびこの種の基本操作もサポートする必要があります。この目標を簡単に達成する方法を探しているときに、Workflow Manager 1.0 に出会いました。WF 1.0 を使いたいのですが、
- ドキュメントが不足しています。たとえば、WorkflowManagerClient なしでビルド前の REST API を使用する方法がわからず、ドキュメントも提供されていません。それに関する適切なドキュメントはどこにありますか?
- WM 1.0 の最後の更新は 2014 年に提供されましたが、誰も注意を払っていないようです。ロードマップはどこにありますか?
- Sharepoint 2013 なしでワークフロー マネージャー 1.0 を使用している人はないようです。SP 2013 なしでワークフロー マネージャー 1.0 を使用している人はいますか?
- 可能であれば、以前のバージョンのワークフロー インスタンスを最新のものに更新する必要がありますが、WM 1.0 でこれに関する解決策を見つけることができませんでした。以前のバージョンのインスタンスを終了するか、以前のバージョンのインスタンスを最新ではなく、そのワークフローの以前のバージョンで動作させることを選択することのみが可能です。提供されていないか、文書化されていないだけですか?
- Visual Studio 2012 の Workflow Designer からアクセスできた WM 1.0 のアクティビティ (HttpSend、GetConfigurationValue など) は、VS 2013 および VS 2015 ではサポートされていません。その WM 1.0 固有のアクティビティを使用する方法はありませんか?
- WM 1.0 を使用しない場合、2016 年以降は AppFabric サーバーがサポートされなくなるため、WorkflowServiceHost も使用できないようです。私の唯一のオプションは WorkflowApplication ですか?
あらゆる情報を歓迎します、ありがとう。
workflow-foundation-4 - 入れ子になった XAML アクティビティでワークフローを実行する
ワークフロー XAML を実行する必要がありますが、そのワークフローは他の XAML への参照を保持しています。ワークフローを実行しようとしているとき
Load メソッドから次のエラーが発生します。
アクティビティ 'MyNamespace.MyMainActivity' の CacheMetadata が 'System.Xaml.XamlObjectWriterException: 不明な型 '{clr-namespace:MyNamespace}MyNestedActivity' を作成できません' をスローしました。
どうすれば解決できますか?
workflow-foundation-4 - 再ホストされたワークフロー デザイナー内でコンテキスト メニューを拡張する方法は?
多くのカスタム アクティビティを備えた再ホストされたデザイナー (現在は WF 4.0) を使用しています。それらのすべてにカスタム デザイナーがいます。それらの多くについて、デザイン モードのときにデザイナーのコンテキスト メニューにエントリを追加したいと思います。私はこのメニューについて話している:
たとえば、XAML でコード化されたアクティビティの場合、その特定のアクティビティの XAML ソースを新しいデザイナーにロードする「オープン ソース...」エントリが必要です。そのためには、エントリをメニューに追加する必要があります。クリックすると、どのアクティビティがクリックされたかがわかります。どちらの部分も私には不明です。どうすればそれを達成できますか?
WF 3 には、それを行うためのActivityDesignerVerbクラスがありました。WF 4 には、workflowDesigner.Context.Services.Publish<ICommandService>(...) があるようですが、それを使用してカスタム アクションをコンテキスト メニューに追加する方法がわかりません。どうやってやるの?
この SO エントリは内部デバッガ コマンドの何かを示していますが、まったく新しいコマンドを追加したいと考えています。