1

asp.net 4.0 で実行時間の長いワークフローを 1 つ作成しました。

ここに画像の説明を入力

この WF は 1 回開始され、停止することはありません。このワークフローを Web アプリケーションから開始しました。Global.asax では、

protected void Application_Start(object sender, System.EventArgs e)
{
  var LicClient = new WFService.LicWFClient();
  LicClient.StartWorkFlow();
}

データベース トランザクションにコード アクティビティを使用しました。

補充の処理 - 何らかの理由で保留になっているリクエストを確認し、要件が完全に満たされているかどうかを確認し、有効な場合は次に進み、そうでない場合は再度保留します。それに関する通知メールを送信します。

LicenseRequest - 有効な要求を確認します。

Sleep 30 Sec - スレッドを 30 秒間スリープさせます。

リクエストに応じて処理 - リクエストに応じて処理し、それに関する通知メールを送信します。

Sleep 1 Min - スレッドを 1 分間スリープさせます。

私にとっては問題なく動作しますが、サーバー上でいくつかの問題が発生します。

  1. しばらくするとワークフローが停止します
    • これは毎日起こるわけではありません。そのため、手動で開始します。
  2. エラー :

    コンテキストは現在、エンティティを追跡していません。パラメーター名: System.Data.Services.Client.DataServiceContext.UpdateObject のエンティティ (オブジェクト エンティティ)、LicenseWF.SaveLicenseData.Execute (CodeActivityContext コンテキスト) のエンティティ

    • これは有効なリクエストで発生しますが、すべてではなく、2 日で 1 つ取得されます。

何かアイデアがあれば、私に提案してください。前もって感謝します...

4

0 に答える 0