空参考例外

0 c# windows windows-services

沮丧一直在看这一天...我正在创建一个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)

有些东西给了我一个空引用异常,我不知道它在哪里.

我在这里先向您的帮助表示感谢.

Sim*_*n S 5

您可以在服务启动时在代码中添加强制断点...

protected override void OnStart(string[] args)     
{   
    System.Diagnostics.Debugger.Break();       

    eventLog1.WriteEntry("In OnStart"); 
    ...
}
Run Code Online (Sandbox Code Playgroud)

..并将调试器附加到进程