IISでワークフローサービス(xamlx)をホストしています。これには、MethodAやMethodBなどの受信アクティビティがあります。これらのメソッドを呼び出すクライアントとしてMVCアプリケーションを作成しました。PageAでは、ユーザーがフォームを送信するとMethodAが呼び出され、ワークフローはMethodBを待機しているReceiveActivityに移動します。次に、ページBで、ユーザーがフォームを送信すると、MethodBが呼び出されます。ただし、ユーザーがPageAで送信してから、PageAに戻って同じワークフローインスタンスを再度送信すると、1分待って、タイムアウト例外が発生します。
00:01:00以降、応答を待っている間に要求チャネルがタイムアウトしました。Requestの呼び出しに渡されるタイムアウト値を増やすか、BindingのSendTimeout値を増やします。この操作に割り当てられた時間は、より長いタイムアウトの一部であった可能性があります。
このエラーはWCFに起因するようですが、次のエラーが発生すると思います。
インスタンスキー「guid」がインスタンスに関連付けられていなかったため、InstancePersistenceCommandの実行が中断されました。これは、インスタンスまたはキーがクリーンアップされているか、キーが無効であるために発生する可能性があります。キーが生成されたメッセージが間違った時間に送信された場合、または誤った相関データが含まれている場合、キーは無効である可能性があります。
少し質問があります:
タイムアウト例外がキャッチされるまでしばらく待つのではなく、別の例外をキャッチできるように設定できる構成はありますか?バインディングタグでより小さなタイムアウト値を設定できることは知っていますが、それは解決策ではありません。
ワークフローインスタンスが正しい状態にないときにPageAが表示されないようにする方法はありますか?(これが行われたとしても、ユーザーがPageAを開いて送信する前にしばらくアイドル状態になる可能性があるため、問題1も解決する必要があります)
ありがとう。