EmailLogProvider 示例
新建日期: 2006 年 4 月 14 日
EmailLogProvider 示例说明如何创建自定义日志提供程序 - 电子邮件日志提供程序,它可将日志记录输出作为纯文本或 HTML 格式的电子邮件来发送。基于 Itanium 的操作系统不支持该示例。
有关如何创建自定义日志提供程序的详细信息,请参阅Creating a Custom Log Provider。有关使用 Integration Services 中的日志提供程序的一般信息,请参阅 Integration Services 日志提供程序。
自定义日志提供程序需要一个由分号分隔的字符串列表,用于指定 SMTP 服务器、收件人地址、发件人地址以及邮件格式是文本还是 HTML。日志提供程序可以缓存记录的事件,当包运行完成时,它会在邮件正文中发送缓存的输出。日志提供程序将忽略最后两个标准列(dataCode 和 dataBytes),其中可能包含了无法正确显示的二进制数据。为了便于再次使用,该示例将文本日志记录代码封装到独立的 TextLogWriter 类中,将 HTML 日志记录代码封装到独立的 HtmlLogWriter 类中。上述每个帮助器类都有 OpenLog<format>、Log<format> 和 CloseLog<format> 子例程,它们分别使用 OpenLog、Log 和 CloseLog 调用。
此代码示例实现了以下功能:
- 替换 LogProviderBase 类。
- 不要求开发人员编写自定义持久性代码的默认持久性支持。
重要提示: |
---|
提供的示例仅供教学使用。这些示例不是针对生产环境设计的,也没有在生产环境中进行测试。对于这些示例,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 文件夹中生成强名称密钥文件,则请使用以下过程生成此密钥文件。在**“项目属性”对话框的“签名”**选项卡中配置示例项目,以在生成时使用此密钥文件对程序集签名。
生成强名称密钥文件
若要打开 Microsoft Visual Studio 2005 命令提示,请单击**“开始”,依次指向“所有程序”、Microsoft Visual Studio 2005 和“Visual Studio 工具”,然后单击“Visual Studio 2005 命令提示”**。
- 或 -
若要打开 Microsoft .NET Framework 命令提示,请单击**“开始”,依次指向“所有程序”和 Microsoft .NET Framework SDK v2.0,然后单击“SDK 命令提示”**。
在命令提示符下,使用更改目录 (CD) 命令将命令提示窗口的当前文件夹更改为 Samples 文件夹。在此文件夹中创建的密钥文件将由所有 SQL Server 2005 代码示例使用。
注意: 若要确定示例所在的文件夹,请单击“开始”,依次指向“所有程序”、Microsoft SQL Server 2005以及“文档和教程”,然后单击“示例目录”。如果使用了默认安装位置,则示例将位于 <system_drive>:\Program Files\Microsoft SQL Server\90\Samples 中。 在命令提示符下,运行以下命令以生成密钥文件:
sn -k SampleKey.snk
重要提示: 有关强名称密钥对的详细信息,请参阅 MSDN 上 .NET 开发中心中的“安全简讯:.NET Framework 中的强名称和安全性”。
在 Microsoft Visual Studio 2005 中生成示例
从**“文件”|“打开”菜单中,单击“项目”**并打开 EmailLogProviderVB.sln 或 EmailLogProviderCS.sln。
在**“生成”菜单上,单击“生成解决方案”**以生成解决方案。
安装示例
同时提供此示例的 Visual Basic 和 C# 版本。为了区分每个示例版本的程序集,在输出程序集的名称中追加有 CS 或 VB。成功生成组件后,在 Business Intelligence Development Studio 中按照以下步骤将其添加为包中的连接管理器。
将组件复制到 Connections 文件夹
打开 Windows 资源管理器或要在文件系统中使用的首选应用程序。
将程序集(EmailLogProviderCS.dll 或 EmailLogProviderVB.dll)复制到位于 %system%\Program Files\Microsoft SQL Server\90\DTS 的 LogProviders 文件夹中。
通过拖放程序集的方式将组件安装到全局程序集缓存 (GAC) 中
打开 Windows 资源管理器或要在文件系统中使用的首选应用程序。
将程序集从 LogProviders 文件夹拖放到全局程序集缓存 (GAC) 所在的文件夹,该文件夹位于 %system%\assembly。
使用 gacutil.exe 将组件安装到全局程序集缓存 (GAC) 中
打开命令提示符窗口。
键入以下命令以将 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"
测试示例
现在您可以测试包中的自定义日志提供程序。
使用包中的示例日志提供程序
确认可用的 SMTP 服务器的名称。
从 SSIS 菜单中,选择**“日志记录”**,并添加邮件 (CS) 的自定义日志提供程序或邮件 (VB) 的自定义日志提供程序。最好配置日志提供程序的两个实例,以便对文本和 HTML 输出格式都进行测试。
在“配置”列中,输入一个由分号分隔的四字符串列表,它指定 SMTP 服务器、收件人地址、发件人地址以及邮件格式是文本还是 HTML。例如:
smtpserver;joe@northwind.com;joe@northwind.com;html
适当配置日志记录,以使包及其组件可将其事件记录到自定义日志提供程序中。
运行该包,然后在邮件程序中查看包含日志记录输出的邮件。