【发布时间】:2011-08-17 03:16:02
【问题描述】:
我是 C# .net 的新手,我正在尝试让 Windows 服务工作。我按照本教程进行操作
http://www.beansoftware.com/NET-Tutorials/Create-Windows-Services.aspx
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.IO;
namespace WindowsService1
{
public partial class Service1 : ServiceBase
{
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
}
protected override void OnStop()
{
}
private void FolderWatcherTest_Created(object sender, System.IO.FileSystemEventArgs e)
{
TextWriter writer = new StreamWriter("C:\\FolderLog.txt", true);
writer.WriteLine(DateTime.Now + " A new folder/file with name " + e.Name + " has been created. ");
writer.Close();
}
private void FolderWatcherTest_Deleted(object sender, System.IO.FileSystemEventArgs e)
{
TextWriter writer = new StreamWriter("C:\\FolderLog.txt", true);
writer.WriteLine(DateTime.Now + " A new folder/file with name " + e.Name + " has been deleted. ");
writer.Close();
}
private void FolderWatcherTest_Renamed(object sender, System.IO.RenamedEventArgs e)
{
TextWriter writer = new StreamWriter("C:\\FolderLog.txt", true);
writer.WriteLine(DateTime.Now + " A new folder/file with name " + e.Name + " has been renamed. ");
writer.Close();
}
}
}
我能够在 Windows 服务中注册服务。但是当我尝试启动它时,它给了我一个错误2:系统找不到指定的文件
我不确定发生了什么。我也有点困惑这些方法在哪里被调用,因为教程没有提到这些方法
private void FolderWatcherTest_Created(object sender, System.IO.FileSystemEventArgs e)
{
TextWriter writer = new StreamWriter("C:\\FolderLog.txt", true);
writer.WriteLine(DateTime.Now + " A new folder/file with name " + e.Name + " has been created. ");
writer.Close();
}
private void FolderWatcherTest_Deleted(object sender, System.IO.FileSystemEventArgs e)
{
TextWriter writer = new StreamWriter("C:\\FolderLog.txt", true);
writer.WriteLine(DateTime.Now + " A new folder/file with name " + e.Name + " has been deleted. ");
writer.Close();
}
private void FolderWatcherTest_Renamed(object sender, System.IO.RenamedEventArgs e)
{
TextWriter writer = new StreamWriter("C:\\FolderLog.txt", true);
writer.WriteLine(DateTime.Now + " A new folder/file with name " + e.Name + " has been renamed. ");
writer.Close();
}
感谢您的帮助
更新1
好的,我能够注册该服务。我正在运行 .exe 以从项目文件所在的不同文件夹中作为服务安装。但现在它注册得很好。但是我无法启动这些 私有 void FolderWatcherTest_* 方法。当我更改桌面上的文件名时,他们应该记录更改。任何帮助将不胜感激
谢谢
【问题讨论】:
-
我刚刚写了一个Windows Service,发现添加了'Debugger.Break();'真是天赐之物。该行将调出 VS,以便您对其进行调试。
-
@lian:windows服务可以像普通程序一样调试。
标签: c# visual-studio-2010 windows-services