中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET工作流的創建與啟動方法

發布時間:2021-07-15 12:10:36 來源:億速云 閱讀:179 作者:chen 欄目:編程語言

這篇文章主要介紹“ASP.NET工作流的創建與啟動方法”,在日常操作中,相信很多人在ASP.NET工作流的創建與啟動方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”ASP.NET工作流的創建與啟動方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

創建 Windows Workflow Foundation 是為了在不同的宿主應用程序環境中運行。 ASP.NET Web 窗體就是一種這樣的支持環境。 但是,當為 Windows Workflow Foundation 創建基于 Web 的宿主應用程序時,必須設計宿主基礎結構以解決 ASP.NET 應用程序和傳統 Windows 窗體應用程序之間的關鍵體系結構差異。 例如,ASP.NET 應用程序可以同時為多個同步的用戶提供服務。 在這種服務器環境中,應用程序的設計方式必須有效地利用可用的系統內存。 這些情況下,Windows Workflow Foundation 提供卸載工作流實例的 SqlWorkflowPersistenceService 服務。 另外,ASP.NET 在收到請求時會發出響應。 默認情況下,工作流運行時以異步方式執行工作流。 因此,可能會在工作流完成之前呈現頁面和發送響應。 為了避免這種情況,Windows Workflow Foundation 提供 ManualWorkflowSchedulerService 服務以便同步運行工作流。 這使您的 Web 窗體能夠將工作流狀態信息返回給用戶。

ASP.NET工作流的創建:創建 WorkflowRuntime 對象

使用 ASP.NET 中的 Global.asax 文件可以處理與開始和結束 Web 應用程序時引發的各個 Web 會話或事件相關的 Web 窗體事件。 ASP.NET 中的 Session 對象是為每個請求 Web 頁的用戶創建的,Application 對象是在每個會話中共享的單個對象。 下面的示例演示如何處理 Application_Start 事件以創建 WorkflowRuntime 實例和添加 ManualWorkflowSchedulerService。 完成此操作后,通過使用 StartRuntime 方法啟動運行時,您可以將 WorkflowRuntime 實例保存到隨 ASP.NET 一起提供的 Application 對象中。 在以后對應用程序中 Web 頁的請求中,您可以檢索此單個 WorkflowRuntime 實例以啟動工作流。

void Application_Start(object sender, EventArgs e)   {      System.Workflow.Runtime.WorkflowRuntime workflowRuntime =          new System.Workflow.Runtime.WorkflowRuntime();       System.Workflow.Runtime.Hosting.ManualWorkflowSchedulerService manualService =          new System.Workflow.Runtime.Hosting.ManualWorkflowSchedulerService();      workflowRuntime.AddService(manualService);            workflowRuntime.StartRuntime();       Application["WorkflowRuntime"] = workflowRuntime;             }

當應用程序完成時,ASP.NET 引發 Application_End 事件。 下面的代碼演示如何檢索在 Application_Start 事件期間創建的 WorkflowRuntime 對象,以便調用 StopRuntime 方法。

void Application_End(object sender, EventArgs e)   {      System.Workflow.Runtime.WorkflowRuntime workflowRuntime =          Application["WorkflowRuntime"] as System.Workflow.Runtime.WorkflowRuntime;      workflowRuntime.StopRuntime();  }

ASP.NET工作流的啟動:在 ASP.NET Web 窗體中啟動工作流

在上一節中,在 Application_Start 事件期間創建了 WorkflowRuntime 實例。 在 Web 應用程序處理請求時,會一直保留此對象。 下面的代碼演示如何從 ASP.NET 中的 Application 對象中檢索 WorkflowRuntime 實例。 之后,使用 GetService 方法檢索用于啟動工作流的 ManualWorkflowSchedulerService,以便同步運行工作流。 為此,調用在 WorkflowRuntime 類中定義的 CreateWorkflow 方法,隨后調用從 CreateWorkflow 調用中返回的 WorkflowInstance 對象中的 Start 方法。 由于將 ManualWorkflowSchedulerService 添加到了 WorkflowRuntime,因此調用 RunWorkflow 方法,傳遞 WorkflowInstance 對象的 InstanceId。

protected void StartRuntime_Click(object sender, EventArgs e)  {      WorkflowRuntime workflowRuntime = Application["WorkflowRuntime"] as WorkflowRuntime;      ManualWorkflowSchedulerService manualScheduler =           workflowRuntime.GetService(typeof(ManualWorkflowSchedulerService))           as ManualWorkflowSchedulerService;       WorkflowInstance instance = workflowRuntime.CreateWorkflow(          typeof(ASPNetSequentialWorkflow));      instance.Start();      manualScheduler.RunWorkflow(instance.InstanceId);  }

到此,關于“ASP.NET工作流的創建與啟動方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

淳化县| 尚义县| 保定市| 泗洪县| 营口市| 遂溪县| 和顺县| 怀集县| 昭觉县| 调兵山市| 保康县| 高陵县| 商河县| 中江县| 德令哈市| 开鲁县| 闽清县| 郓城县| 襄樊市| 嘉义县| 普格县| 曲阜市| 双江| 拉孜县| 十堰市| 九江市| 开化县| 临江市| 思南县| 顺昌县| 察隅县| 霞浦县| 自治县| 邳州市| 六枝特区| 涡阳县| 孟连| 绍兴县| 潼南县| 凤庆县| 克拉玛依市|