在本文中,将探讨一个场景,即在特定目录下添加新文件时触发SSIS包的执行。为了实现这一功能,需要一个始终运行的监控服务来检测变化并触发包。因此,文章将解释如何实现这一过程。
本文是对之前的另一篇文章《动态Excel文件加载与SSIS》中收到的评论/问题的回应。
让定义实现目标的几个重要方面:
打开Visual Studio命令提示符(开始 > 所有程序 > Visual Studio 20xx > Visual Studio工具 > Visual Studio命令提示符)。 在命令提示符中输入以下命令以安装服务:
installutil "C:\Folder1\Folder2\Yourservice.exe"
打开Visual Studio命令提示符(开始 > 所有程序 > Visual Studio 20xx > Visual Studio工具 > Visual Studio命令提示符)。 在命令提示符中输入以下命令以卸载服务:
installutil /u "C:\Folder1\Folder2\Yourservice.exe"
打开命令提示符(开始 > 运行,输入cmd将启动命令提示符)。 接下来:
任何动态设置的修改(例如修改配置条目)只有在停止并重新启动服务后才会被反映。
让构建一个查询以监控任何文件创建(也可以复制文件到该位置):
string WMIQuery = "SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE TargetInstance ISA \"CIM_DirectoryContainsFile\" and TargetInstance.GroupComponent=\"Win32_Directory.Name='C:\\Test\\MyFolderToMonitor'\"";
上述WMI查询将捕获在指定文件夹内10秒内发生的任何文件创建事件。
可以使用Microsoft.SQLServer.ManagedDTS(正常位置是:C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\Microsoft.SQLServer.ManagedDTS.dll)库从C#执行包。
让构建一个小程序类来实现这一点。请参见以下类以了解其工作原理。它非常简单,只需加载提供的路径上的包,并使用Package对象的Execute方法。
应该能够:
所有上述事项都可以通过以下简单的配置文件进行控制:
可以构建一个小程序类来管理配置,并随时准备好,即无需再次实际访问配置。