我有一个在启动时打印报告的 Windows 服务。我有两种情况
- 1.我想在我的 E:\here\ 文件夹中创建一个新文件夹时启动此服务。如何完成此操作?
2 当新行插入数据库表时是否可以触发服务?如何?
请提供上述查询的链接。
我有一个在启动时打印报告的 Windows 服务。我有两种情况
- 1.我想在我的 E:\here\ 文件夹中创建一个新文件夹时启动此服务。如何完成此操作?
2 当新行插入数据库表时是否可以触发服务?如何?
请提供上述查询的链接。
您可以创建一个轮询新记录和/或新文件夹的新服务,然后相应地启动现有服务。
对于数据库,您很可能只需定期验证给定表中的行数或最新 ID,例如每 5 秒或任何您可接受的窗口。如果您的数据库是 SQL Server 数据库,您也可以使用SqlDependency
该类。在 MSDN ( http://msdn.microsoft.com/en-us/library/62xk7953(v=vs.110).aspx ) 和代码项目 ( http://www.codeproject.com/文章/12335/Using-SqlDependency-for-data-change-events)。
对于文件夹,您可以使用FileSystemWatcher
该类来通知您任何更改(以下是如何执行此操作的示例:http: //snipplr.com/view/54606)。
您可以使用FileSystemWatcher检查是否在特定位置创建了特定文件夹。创建后,您可以启动 Windows 服务。
Creating FileSystemWatcher
//Define this in the clas level
FileSystemWatcher watcher = new FileSystemWatcher();
Initializing
private void InitializeWatcher()
{
watcher.Created += new FileSystemEventHandler(NotifyChange);
watcher.Path = @"E:\here\folder";
watcher.EnableRaisingEvents = true;
}
Starting Windows Service when folder is created
private void NotifyChange(object sender, FileSystemEventArgs e)
{
if (e.Name.Equals("FolerName",StringComparison.OrdinalIgnoreCase))
{
new ServiceController("WindowsServiceName").Start();
}
}