文章編號: 935354 - 上次校閱: 2007年5月16日 - 版次: 1.4

Microsoft Windows 工作流程基礎逐步註解和更正

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

結論

這份文件包含註解、 更正,與 Microsoft 按活頁簿 Microsoft Windows 工作流程基礎步驟依步驟,與相關的已知錯誤的相關資訊 0-7356-2335年-X。

將會涵蓋下列主題:

  • 光碟片: 為第章 6、 8,14 修訂程式碼
  • 頁面 xxvii: 參考至線上的同一系列文件的內容不正確
  • 第 7 頁: 修正到 Windows SDK 下載位置
  • 頁面 19: 遺漏規則運算式的字元
  • 頁面 24: 校正 WorkflowRuntime 執行個體
  • 頁面 28: 修正到 WorkflowRuntime 執行個體
  • 頁面 36: _waitHandle 應該是 waitHandle
  • 頁面 38: [建立工作流程執行階段每個應用程式網域的單一執行個體] 應該是 [建立工作流程執行階段的執行個體]
  • 步驟 2 頁面 50: 修正
  • 頁面 50: 刪除秘訣方塊
  • 頁面 61: 「 類別 MyClass 」 應該是 「 類別 MyClass: DependencyObject 」
  • 頁面 76: ActivityTrackingPoint 應該是 ActivityTrackPoint
  • 頁面 88: GetWorkflowRuntime 應該是 WorkflowRuntime
  • 頁面 89: 刪除步驟 2
  • 頁面 90: SqlTrackingService 應該 SqlTrackingQuery
  • 頁面 92: 新增至步驟 2 的"使用 System.Workflow.ComponentModel"
  • 頁面 113: System.Workflow.activity 應該是 System.Workflow.activities
  • 頁面 114: 修正到步驟 14
  • 頁面 116: 型別的第一個字元必須是大寫
  • 頁面 122: WorkingStore 應該 WorkflowStore
  • 頁面 123: 修正到指令碼名稱
  • 頁面 159: 基第一次"底建構函式 」 應該是 「 建構函式 」
  • 頁面 162: MVDataconnector.cs 應該是 MVDataConnector.cs
  • 頁面 179: Workflow2.Workflow1 應該是 Workflow2.Workflow2
  • 頁面 194: 不正確的屬性名稱
  • 頁面 200: 方法應該是屬性
  • 頁面 200: 方法應該是事件
  • 頁面 236: 如果 (_service = = Null) 應該是如果 (值! = null)
  • 頁面 264: setlevel1 應該是 setLevel1
  • 在程式碼中的頁面 280: 外加括號
  • 頁面 286: WorkflowComplete 應該 WorkflowCompleted
  • 到最後一個段落的頁面 332: 修正
  • 頁面 352: DefaultSettings 應該是 DefaultSettingsSection
  • 頁面 386: 選取工作流程活動程式庫應該是選取工作流程
  • 頁面 396: CorrelationIntializer 應該是 CorrelationInitializer
  • 頁面 432: Shift + F5 應該是 Ctrl + F5
  • 頁面 469: Shift + F5 應該是 Ctrl + F5

其他相關資訊

光碟片: 為第章 6、 8,14 修訂程式碼

光碟片: 從光碟安裝範例程式碼後各種章節的範例程式碼放置中在硬碟上的 [\My Documents\Microsoft] 請按資料夾, 的預設。

我們已更新範例程式碼的章節 6 8 到 14。 請下載更新的範例程式碼來取代這三章的硬碟上的程式碼範例。

WF6-8-14.exe (http://download.microsoft.com/download/5/4/b/54ba6499-4a6b-46e0-ad7c-a3b4d1f22f09/wf6-8-14.exe)

如需有關如何下載 Microsoft 支援檔案的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:

119591 (http://support.microsoft.com/kb/119591/en-us/) 如何從線上服務取得 Microsoft 支援檔案

Microsoft 已掃描這個檔案有無病毒。Microsoft 使用已張貼檔案的日期中的 [可用的最新病毒偵測軟體。檔案儲存在安全性強化的伺服器上,以避免任何未經授權的更改至檔案。

頁面 xxvii: 參考至線上的同一系列文件的內容不正確

在頁面 xxvii 標題為 「 線上小幫手內容 > 一節會讀取:
「 線上的同一系列文件內容
線上的同一系列文件內容頁上有內容及連結相關這本書包括 Microsoft 按技術更新 Web 網頁的連結。您可以在 www.microsoft.com/mspress/companion/0-7356-2335-4/ 找到這本書的線上的同一系列文件內容頁面"

此標題沒有同一系列文件內容網站原狀,請忽略整個本節。

第 7 頁: 修正到 Windows SDK 下載位置

在第一個項目符號的 7,頁面上的下載 Windows SDK URL 已變更。

變更:

「 http://www.microsoft.com/downloads/details.aspx?familyid=7614FE22-8A64-4DFB-AA0C-DB53035F40A0&displaylang=en 」

至:

「 http://www.microsoft.com/downloads/details.aspx?FamilyID=4377F86D-C913-4B5C-B87E-EF72E5B4E065&displaylang=en 」

頁面 19: 遺漏規則運算式的字元

在頁面 19 前, 兩行的步驟 4 中的程式碼還缺少某些字元。

變更:
string USCode = @"^(\d{5}$)|(\d{5}$\-\d{4}$)";
string CanadianCode = @"[ABCEGHJKLMNPRSTVXY]\d[A-Z] \d[A-Z]\d";

至:
string USCode = @"^(\d{5}$)|(\d{5}-\d{4}$)";
string CanadianCode = @"^[ABCEGHJKLMNPRSTVXY]\d[A-Z] \d[A-Z]\d$";


頁面 24: 校正 WorkflowRuntime 執行個體

在第一個段落中的頁 24,WorkflowRuntime 執行個體的相關陳述式是不正確。

變更:
「 WF 執行階段和應用程式執行一起一個.NET 應用程式網域中,可以每 AppDomain WorkflowRuntime 只有一個執行個體。嘗試建立 WorkflowRuntime 的第二個執行個體在單一的 AppDomain 結果中一個 InvalidOperationException 」。

至:
在 「 WF 執行階段和應用程式一起中執行.NET 應用程式網域。雖然早期 WF ’s 歷程記錄中可能會有只有單一執行個體的每個應用程式網域 WorkflowRuntime,現代式版本可讓多個執行個體 」。

頁面 28: 修正到 WorkflowRuntime 執行個體

在 [頁面 28,"建置一個工作流程執行階段工廠 」 底下,關於 WorkflowRuntime 陳述式不正確。

變更:
「 我提到這先前在章節中,但是很重要再次說 — 可以有只的單一執行個體 WorkflowRuntime 每個應用程式網域。因為大部分的.NET 應用程式使用只有單一的 AppDomain,它一定是依照您通常可以使用只有一個執行個體 WorkflowRuntime 應用程式中。 每當我聽到 「 使用只有單一執行個體 」,我自然想到使用的單一物件以及原廠模式的組合。單一] 模式如果 ’re 熟悉模式,只是一種機制對於確保,不論多少次應用程式要求單一物件的執行個體,只有一個 「 單一物件的執行個體曾經被賦予。這通常是時間的對於被視為 「 便宜 」,例如耗用大量資源,或需要一段相當長?建立的物件建立的物件 」。

至:
「 當我開始撰寫本書時,可能有只的單一執行個體 WorkflowRuntime 每個應用程式網域。因為大部分的.NET 應用程式使用只有單一的 AppDomain,它一定是後面,您通常可以在應用程式中使用只有一個執行個體 WorkflowRuntime。其發行以來 WF 可讓應用程式網域,每一個以上的 WorkflowRuntime 執行個體,但是我發現我告訴這裡仍然是一個有用的工具,如果只因為您可以在收集執行階段自訂項目 (在後面的章節中討論) 一個放置,已將它關閉程式碼中的單一位置的工作流程工廠。 每當我聽到 「 使用只有一個單一的執行個體,」 即使我們在這種情況下允許多個執行個體,我自然想到使用的單一物件以及原廠模式的組合。單一] 模式如果 ’re 熟悉模式,只是一種機制對於確保,不論多少次應用程式要求單一物件的執行個體,只有一個 「 單一物件的執行個體曾經被賦予。這通常是時間的對於被視為 「 便宜 」,例如耗用大量資源,或需要一段相當長?建立的物件建立的物件 」。

頁面 36: _waitHandle 應該是 waitHandle

在頁面 36,在點 6,底線 _waitHandle shouldbe 中的被刪除。

變更:
"6.我們需要建立 _waitHandle 物件"

至:
"6.我們需要建立 waitHandle 物件"

頁面 38: [建立工作流程執行階段每個應用程式網域的單一執行個體] 應該是 [建立工作流程執行階段的執行個體]

在頁面上在 < 第 2 Quicke 參考 > 下的 38 [建立工作流程執行階段每個應用程式網域的單一執行個體] 應該是 [建立工作流程執行階段的執行個體]。

變更:
「 加入 System.Workflow.Runtime 組件的參考。建立工作流程]-每個應用程式網域,執行階段的單一執行個體並開始執行階段藉由呼叫 WorkflowRuntime.StartRuntime 或建立工作流程執行個體 」。

至:
「 加入 System.Workflow.Runtime 組件的參考。建立工作流程-執行階段的執行個體。開始執行階段藉由呼叫 WorkflowRuntime.StartRuntime 或藉由建立工作流程執行個體 」。

步驟 2 頁面 50: 修正

在步驟 2,50,頁它指出:

"2.如果我們要編譯應用程式現在 WorkflowHost 會無法編譯..."

但這次程式碼不在其中,它有在下一個步驟中,在輸入。因此編譯,會造成沒有錯誤。

若要修正這個問題將步驟 2 下,使其成為步驟 5。目前的步驟 3 – 5 然後就會成為執行步驟 2 – 4。

頁面 50: 刪除秘訣方塊

在頁面 50,秘訣] 方塊中的文字不會幫助。Bacuse 它不可能選取 simultanous 兩個索引標籤上的項目。如果您變更 [] 索引標籤,並按一下 [確定] 將不會插入第一個選取的參考。有鑑於此秘訣方塊應被刪除。

頁面 61: 「 類別 MyClass 」 應該是 「 類別 MyClass: DependencyObject 」

在頁面 61,沒有校正,以在頁面頂端的程式碼範例。

變更:
class MyClass

至:
class MyClass : DependencyObject


頁面 76: ActivityTrackingPoint 應該是 ActivityTrackPoint

在頁面的 76 中最後一個段落, ActivityTrackingPoint"應該 ActivityTrackPoint 」。

頁面 88: GetWorkflowRuntime 應該是 WorkflowRuntime

在步驟 6,88,頁 GetWorkflowRuntime 應該 WorkflowRuntime。

變更:
「...following 下一行程式碼呼叫 GetWorkflowRuntime 「

至:
「...following 下一行程式碼會建立新的執行個體的 WorkflowRuntime 「

頁面 89: 刪除步驟 2

在頁面 89,刪除步驟 2,因為不完整的範例檔案已經包含這些 using 指示詞。

刪除:
"2.加入使用組態和追蹤檔案的頂端的工作流程的陳述式:
using System.Configuration; 
using System.Workflow.Runtime.Tracking;
"

頁面 90: SqlTrackingService 應該 SqlTrackingQuery

在頁面中間的頁面 90,沒有一個不正確的類別名稱:

變更:
「 查詢是由 SqlTrackingService.TryGetWorkflow 執行 」。

至:
「 查詢是由 SqlTrackingQuery.TryGetWorkflow 執行 」。

頁面 92: 新增至步驟 2 的"使用 System.Workflow.ComponentModel"

在頁面 92,在步驟 2,在 「 使用 System.Workflow.ComponentModel"應該加入程式碼。

變更:
using System.Data;
using System.Data.SqlClient;
using System.Globalization;
using System.IO;


若要:
using System.Data;
using System.Data.SqlClient;
using System.Globalization;
using System.IO;
using System.Workflow.ComponentModel;


頁面 113: System.Workflow.activity 應該 System.Workflow.activities

在頁面 113 中步驟 11,, System.Workflow.Activity"應該 System.Workflow.Activities 」。

頁面 114: 修正到步驟 14

在頁在步驟 4 的 114

變更:
"(之方法包含我們先前步驟中加入程式碼)"

至:
"(包含程式碼的方法我們將新增在下一個步驟)"

頁面 116: 型別的第一個字元必須是大寫

在步驟 18,116,頁面上第一個字元的型別必須是大寫。

變更:
string conn


若要:
String conn


頁面 122: WorkingStore 應該 WorkflowStore

在步驟 9,頁面 122 上, 資料庫名稱是錯誤的。

變更:
」 這應該是 enought 時間來檢查 WorkingStore InstanceState 資料庫表格 」。

至:
」 這應該是 enought 時間來檢查 WorkflowStore InstanceState 資料庫表格 」。

頁面 123: 修正到指令碼名稱

在頁面 123,< 第 6 快速參考 > 底下,指令碼會有錯誤的名稱 (名稱中移除 「 工作流程 」)。

變更:
"您將需要執行 SqlWorkflowPersistenceService_Schema.sql 指令碼和 SqlWorkflowPersistenceService_Logic.sql 指令碼 」。

至:
"您將需要執行 SqlPersistenceService_Schema.sql 指令碼和 SqlPersistenceService_Logic.sql 指令碼 」。

頁面 159: 基第一次"底建構函式 」 應該是 「 建構函式 」

在頁面 159 的第三個段落中第一個參考到 「 基底建構函式 」 應該是 「 建構函式 」。

變更:
我們必須提供基底建構函式接受 (Accept) 依序傳遞至基底建構函式的執行個體識別碼,執行個體識別碼 (GUID)"

至:
我們必須提供建構函式接受 (Accept) 依序傳遞至基底建構函式的執行個體識別碼,執行個體識別碼 (GUID)"

頁面 162: MVDataconnector.cs 應該是 MVDataConnector.cs

在底部的頁面] 頁面 162,的程式碼範例 8-3 標題就是不正確。

變更:
"列出 8-3 MVDataconnector.cs 完成"

至:
"列出 8-3 MVDataConnector.cs 完成"

頁面 179: Workflow2.Workflow1 應該是 Workflow2.Workflow2

在步驟 10,頁面 179 上, 有名稱中會發生錯誤。

變更:
"(Workflow2.Workflow1 是完整限定的名稱)"

至:
"(Workflow2.Workflow2 是完整限定的名稱)"

頁面 194: 不正確的屬性名稱

在 [提示] 方塊的 194 頁面上屬性名稱不正確。

變更:
"..直接.response 屬性"

至:
"..直接.responses 屬性"

頁面 200: 方法應該是屬性

在頁面 200,在 [表 9]-1,左邊的欄標題是不正確。

變更:
「 方法 」

至:
「 屬性 」。

頁面 200: 方法應該是事件

在頁面 200,在 [表 9]-2,左邊的欄標題不正確。

變更:
「 方法 」

至:
「 事件 」。

頁面 236: 如果 (_service = = Null) 應該是如果 (值! = null)

在程式碼範例 10-1 236,頁面上有程式碼範例中會發生錯誤。

變更:
if (_service == null)

若要:
if (value != null)

附註: 有這個程式碼的兩個執行個體,兩者都需要加以變更。

頁面 264: setlevel1 應該是 setLevel1

在頁面 264 在點 29 列 3 中, 沒有不正確的屬性名稱。

變更:
「 繫結 setlevel1 ’s 層級屬性 」

至:
「 繫結 setLevel1 ’s 層級屬性 」

在程式碼中的頁面 280: 外加括號

在頁面 280,在"外顯鏈結,"標題上方的程式碼範例沒有額外的括號的程式碼行中。

變更:
[RuleWrite("Discount")]]

若要:
[RuleWrite("Discount")]


頁面 286: WorkflowComplete 應該 WorkflowCompleted

在頁面 286 在點 8 行 5 和 6 中, 事件名稱不正確。

變更:
「 WorkflowComplete 事件 」

至:
「 WorkflowCompleted 事件 」

到最後一個段落的頁面 332: 修正

在頁面的最後一個段落中的 332

變更:
「 這 doesn’t 會影響工作流程但而是會重設使用者介面按鈕 」。

至:
「 這會讓應用程式重新啟動,其中 (因為畢竟我們擊中終端機條件),重新載入工作流程執行階段,會重設使用者介面。(請注意真實的汽水機器會回到等待另一個客戶初始狀態,但是我想要顯示 [作用中的 [終端機的狀態) 」。

頁面 352: DefaultSettings 應該是 DefaultSettingsSection

最後一個 [附註] 方塊中的頁面 352,上設定名稱不正確。

變更:
System.transactions.configuration.DefaultSettings.timeout"

至:
System.transactions.configuration.DefaultSettingsSection.timeout"

頁面 386: 選取工作流程活動程式庫應該是選取工作流程

在步驟 4 中, 頁面 386,沒有錯誤。

變更:
選取工作流程活動程式庫

至:
選取工作流程

頁面 396: CorrelationIntializer 應該是 CorrelationInitializer

在頁面 396,從底部,從第二行中的屬性名稱遺漏字母 i。

變更:
CorrelationIntializer"

至:
CorrelationInitializer"

頁面 432: Shift + F5 應該是 Ctrl + F5

在頁面 432 中步驟 39,, 金鑰名稱是錯誤。

變更:
若要執行應用程式,按下 Shift + F5 程式 」

至:
若要執行應用程式,按下 Ctrl + F5 程式 」

頁面 469: Shift + F5 應該是 Ctrl + F5

在步驟 8,頁 469,金鑰名稱是錯誤。

變更:
若要執行應用程式,按下 Shift + F5 程式 」

至:
若要執行應用程式,按下 Ctrl + F5 程式 」

Microsoft 按將致力於提供有用的資訊和精確的書籍。所有註解和更正上列準備就緒可納入本書的未來 printings。如果您本書的再版它可能已經包含大部分或所有上述的更正。

這篇文章中的資訊適用於:
  • Microsoft Windows Workflow Foundation Step by Step, ISBN 0-7356-2335-X
關鍵字:?
kbmt KB935354 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:935354? (http://support.microsoft.com/kb/935354/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。