fee*_*nst 6 c# windows windows-services event-log windows-7-x64
我试图按照这个演练.
我正在使用Visual Studio 2010 Premium.
我在服务器资源管理器或事件查看器中看到的唯一事件是"服务已成功启动".并且"服务已成功停止".
这是服务代码:
namespace MyNewService
{
public partial class MyNewService : ServiceBase
{
public MyNewService()
{
InitializeComponent();
if (!EventLog.SourceExists("MySource"))
{
EventLog.CreateEventSource("MySource", "MyNewLog");
}
eventLog1.Source = "MySource";
eventLog1.Log = "MyNewLog";
}
protected override void OnStart(string[] args)
{
eventLog1.WriteEntry("In OnStart");
}
protected override void OnStop()
{
eventLog1.WriteEntry("In onStop.");
}
}
}
Run Code Online (Sandbox Code Playgroud)
可能是权限问题。就像评论者所说,尝试以管理员身份运行 VStudio 或编译的服务。
另外,您仍然可以调试服务 - 将 thread.Sleep(最多 20 秒)作为第一行(以便给自己时间附加调试器),然后在后面的行上放置一个断点。然后转到“工具”-->“附加到进程”并选择您的 .exe。如果您在 Thread.Sleep() 结束之前完成了该操作,那么您应该中断。
请记住,服务必须在 IIRC 30 秒内完成 OnStart,否则 Windows 会认为它没有响应并终止您的进程,因此,如果您要进行大量调试,请将代码移出服务启动。只要在里面放一个计时器什么的就可以了。
为了更容易调试,请考虑将您的功能移至 DLL,然后将您的服务保留在足够的代码中以调用您的 DLL - 这将简化单元测试和调试 - 但不要忘记,当您执行以下操作时,很多事情都会发生变化实际上将其作为服务运行。
| 归档时间: |
|
| 查看次数: |
3375 次 |
| 最近记录: |