沮丧一直在看这一天...我正在创建一个Windows服务...这个代码在常规控制台应用程序上工作正常,并不适用于Windows服务.我得到一个空引用异常:
Null reference in OnStart(): Object reference not set to an instance of an object.
at VNurseService.Server.RequestServer..ctor(Server s)
at VNurseService.VNurseServer.OnStart(String[] args)
Run Code Online (Sandbox Code Playgroud)
代码如下:
protected override void OnStart(string[] args)
{
eventLog1.WriteEntry("In OnStart");
Start:
try
{
server = new Server();
Server.RequestServer reference = new Server.RequestServer(server);
new Thread(reference.run).Start();
//r1 = new Thread(reference.run); r1.Start();
Server.ResponseServer reference2 = new Server.ResponseServer(server);
new Thread(reference2.run).Start();
//r2 = new Thread(reference.run); r2.Start();
Server.reference3 = new Server.ConfirmationServer(server);
server.guiServer = new Guicom();
server.restartServer = new Restart();
eventLog1.WriteEntry("Restart in server is " + server.RESTART.ToString());
new Thread(server.guiServer.accept).Start();
new Thread(server.restartServer.accept).Start();
goto check;
check:
while (true)
{
eventLog1.WriteEntry("CheckRestart is " + server.checkRestart().ToString());
if (server.checkRestart())
{
reference.cleanup();
//r1.Abort();
reference2.cleanup();
//r2.Abort();
//server = null;
goto Start;
}
}
}
catch (NullReferenceException ex)
{
eventLog1.WriteEntry("Null reference in OnStart(): " + ex.Message+ " " + ex.InnerException + @"\n " + ex.StackTrace);
}
}
Run Code Online (Sandbox Code Playgroud)
有些东西给了我一个空引用异常,我不知道它在哪里.
我在这里先向您的帮助表示感谢.
您可以在服务启动时在代码中添加强制断点...
protected override void OnStart(string[] args)
{
System.Diagnostics.Debugger.Break();
eventLog1.WriteEntry("In OnStart");
...
}
Run Code Online (Sandbox Code Playgroud)
..并将调试器附加到进程
| 归档时间: |
|
| 查看次数: |
1748 次 |
| 最近记录: |