共用方式為


EmailLogProvider 範例

新增: 2006 年 4 月 14 日

EmailLogProvider 範例示範如何建立自訂記錄提供者「電子郵件記錄提供者」,該提供者會將記錄輸出以純文字或 HTML 格式作為電子郵件訊息傳送。以 Itanium 為基礎的作業系統不支援這個範例。

如需有關如何建立自訂記錄提供者的詳細資訊,請參閱<Creating a Custom Log Provider>。如需有關在 Integration Services 中使用記錄提供者的一般資訊,請參閱<Integration Services 記錄提供者>。

自訂記錄提供者中應包含以分號分隔的字串清單,該清單指定 SMTP 伺服器、「收件者」位址、「寄件者」位址,以及訊息是文字或 HTML 格式。記錄提供者會快取記錄的事件,當封裝完成執行時,它會將快取的輸出包含在郵件訊息的內文中傳送出去。它會忽略最後兩個標準欄位 (dataCode 和 dataBytes),這兩個欄位可能包含無法正確顯示的二進位資料。此範例會將文字記錄程式碼封裝在個別的 TextLogWriter 類別中,將 HTML 記錄程式碼封裝在個別的 HtmlLogWriter 類別中,以方便重複使用。每個 Helper 類別都具有 OpenLog<format>、Log<format> 和 CloseLog<format> 副程式,這些副程式分別從 OpenLogLogCloseLog 呼叫。

此程式碼範例實作下列功能:

  • LogProviderBase 類別的置換。
  • 預設的持續性支援,開發人員不必撰寫自訂的持續性程式碼。
ms365179.note(zh-tw,SQL.90).gif重要事項:
範例只供教育目的之用。它們不能用於實際執行環境,而且從來沒有在實際執行環境中測試過。Microsoft 不提供對這些範例的技術支援。

執行範例

如果您已經知道如何找出、建置和安裝程式碼範例,可以直接跳至<測試範例>一節,閱讀有關如何設定與執行程式碼範例的內容。

必要條件

此範例需要安裝下列元件。

  • Microsoft Visual Studio 2005
  • Microsoft SQL Server 2005 Integration Services

此範例還需要可用的 SMTP 伺服器以提供郵件功能。

位置

如果程式碼範例安裝於預設位置,則範例位於下列目錄中:

C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\\Programming Samples\Control Flow\EmailLogProvider Sample

程式碼範例的 C# 方案位於 CS 目錄中,而 Visual Basic 方案位於 VB 目錄中。

如需有關安裝範例所需執行之兩個步驟程序的詳細資訊,請參閱<安裝範例>。若要取得最新版的範例,包括自 SQL Server 2005 原始發行版本以來所發佈的新範例,請參閱<SQL Server 2005 範例與範例資料庫 (2006 年 4 月)>(英文)。

建立範例

如果您尚未在 Samples 資料夾產生強式名稱金鑰檔,請使用下列程序來產生此金鑰檔。範例專案在 [專案屬性] 對話方塊的 [簽章] 索引標籤上設定為在建立時期以此金鑰檔簽署組件。

若要產生強式名稱金鑰檔

  1. 若要開啟 Microsoft Visual Studio 2005 命令提示字元,請按一下 [開始],依序指向 [所有程式][Microsoft Visual Studio 2005][Visual Studio 工具],然後按一下 [Visual Studio 2005 命令提示字元]

    - 或 -

    若要開啟 Microsoft .NET Framework 命令提示字元,請按一下 [開始],依序指向 [所有程式][Microsoft .NET Framework SDK v2.0],然後按一下 [SDK 命令提示字元]

  2. 在命令提示字元中,使用變更目錄 (CD) 命令,將命令提示字元的現行資料夾變更為 Samples 資料夾。您在此資料夾建立的金鑰檔將供所有 SQL Server 2005 程式碼範例使用。

    ms365179.note(zh-tw,SQL.90).gif附註:
    若要判斷範例所在的資料夾,按一下 [開始],依序指向 [所有程式][Microsoft SQL Server 2005][文件集和教學課程],然後按一下 [範例目錄]。如果是使用預設安裝位置,則範例位於 <system_drive>:\Program Files\Microsoft SQL Server\90\Samples。
  3. 在命令提示字元中,執行下列其中一個命令來產生金鑰檔:

    sn -k SampleKey.snk
    
    ms365179.note(zh-tw,SQL.90).gif重要事項:
    如需有關強式名稱金鑰組的詳細資訊,請參閱 MSDN 中 .NET Development Center 中的<Security Briefs: Strong Names and Security in the .NET Framework>。

若要在 Microsoft Visual Studio 2005 中建立範例

  1. [檔案] | [開啟] 功能表,按一下 [專案] 並開啟 [EmailLogProviderVB.sln][EmailLogProviderCS.sln]

  2. [建立] 功能表上,按一下 [建置方案] 來建立方案。

安裝範例

此範例提供有 Visual Basic 和 C# 兩個版本。為了區別各版範例的組件,輸出組件的名稱會附加 CS 或 VB。成功建立元件之後,請遵循這些步驟,將它加入 Business Intelligence Development Studio 中,作為封裝中的連接管理員。

若要將元件複製到 Connections 資料夾

  1. 開啟 [Windows 檔案總管] 或您偏好的應用程式來使用檔案系統。

  2. 將組件 (EmailLogProviderCS.dll 或 EmailLogProviderVB.dll) 複製到位於 %system%\Program Files\Microsoft SQL Server\90\DTS 的 LogProviders 資料夾。

若要透過拖曳組件的方式將元件安裝至全域組件快取 (GAC)

  1. 開啟 [Windows 檔案總管] 或您偏好的應用程式來使用檔案系統。

  2. 將組件從 LogProviders 資料夾拖曳到全域組件快取 (GAC) 所在的資料夾中,即 %system%\assembly。

若要使用 gacutil.exe 將元件安裝於全域組件快取 (GAC)

  1. 開啟 [命令提示字元] 視窗。

  2. 輸入下列命令,將元件的 C# 版本安裝到 GAC:

    gacutil.exe -iF " C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Programming Samples\Control Flow\EmailLogProvider Sample\CS\EmailLogProviderCS\bin\Debug\EmailLogProviderCS.dll"
    

    - 或 -

    輸入下列命令,將元件的 Visual Basic 版本安裝至 GAC:

    gacutil.exe -iF " C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Programming Samples\Control Flow\EmailLogProvider Sample\VB\EmailLogProviderVB\bin\Debug\EmailLogProviderVB.dll"
    

測試範例

您現在可以在封裝中測試自訂記錄提供者。

若要在封裝中使用範例記錄提供者

  1. 確認可用之 SMTP 伺服器的名稱

  2. [SSIS] 功能表選取 [記錄],然後加入郵件訊息的自訂記錄提供者 (CS) 或郵件訊息的自訂記錄提供者 (VB)。您可能需要設定兩個記錄提供者執行個體,以便測試文字和 HTML 輸出格式。

  3. 在 [組態] 欄位中,輸入四個字串的分號分隔清單,該清單指定 SMTP 伺服器、「收件者」位址、「寄件者」位址,以及訊息是文字或 HTML 格式。例如:

    smtpserver;joe@northwind.com;joe@northwind.com;html
    
  4. 適當設定記錄,讓封裝和其元件將其事件記錄到自訂記錄提供者。

  5. 執行封裝,然後在您的郵件程式中檢視含有記錄輸出的郵件訊息。