Windows қызметі басталды, бірақ OnStart () кейін қателерсіз тоқтайды

Мен жақында менің 32 биттік Vista ноутбугімде жұмыс істейтін және орнататын Windows қызметіне TCP-порт тыңдауды қолданамын. Мәселе, оны орнатқаннан кейін, 64 биттік Win7 сервисінде (Remote Dekstop арқылы) іске қосылуға тырыстым және ол іске қосылғанда қызметтің мерзімі аяқталғанын білдіріп, қате 1053 қателікті жіберді.

Енді мен оны қателесіз іске қосу үшін алдым, бірақ мұның бәрі бірден қатесіз немесе кез-келген оқиғасыз дереу шығу болып табылады. Мен таймерді Threading дегенмен ауыстыруды тырысты, ол бұл елде бастауы бар проблема бола алар ма, әлде сәттілік болмады ма ... Міне, қызмет көрсетудің OnStart әдісі және үздіксіз жұмыс істеуге арналған әдіс.

protected override void OnStart(string[] args)
    {
        myServer.Start();
        eventLog1.WriteEntry("Server started.");               
        mWorker = new Thread(StartUp);
        eventLog1.WriteEntry("Starting up CykelScore service.");
        mWorker.Start();//Start the service
        //timer.Start();             //Start the timer
    }

    private void StartUp(object arg)
    {
        while (true)
        {
            eventLog1.WriteEntry("Running.");
            if (mStop.WaitOne(10000)) return;
            {
                if (Monitor.dataCount > 0)
                {
                    string tmp = "";
                    eventLog1.WriteEntry("Antal tags: " + Monitor.dataCount.ToString());
                    lockedUp.WaitOne();
                    try
                    {
                        tmp = Monitor.PopData();
                    }
                    catch (Exception ex)
                    {
                        eventLog1.WriteEntry("Fejl:" + ex.ToString());
                    }
                    eventLog1.WriteEntry("Recieved: " + tmp);
                    string buffer = tmp;
                    string antenna = (buffer.Split(',')[0]).Replace(" ", "");
                    string time = buffer.Split(',')[2];
                    string RFIDNR = (buffer.Split(',')[1]).Replace(" ", "");

                    string[] ART = new string[3];
                    ART[0] = antenna;
                    ART[1] = RFIDNR;
                    ART[2] = time;

                    if (lastreceivedtagID == RFIDNR)
                    {
                        eventLog1.WriteEntry("Same tag as last time. No need to check database");
                    }
                    else
                    {
                        if (!DataHandler.LoggedInCurrentTimespan(ART))
                        {
                            try
                            {
                                DataHandler.SaveToLocal(ART);
                                eventLog1.WriteEntry("Data saved to local database");

                                DataHandler.SendToRemote(tmp, Monitor.server, Monitor.database, Monitor.username, Monitor.password);
                                eventLog1.WriteEntry("Data sent to remote database");
                            }
                            catch (Exception ex)
                            {
                                eventLog1.WriteEntry("Fejl" + ex.ToString());
                            }
                        }
                        else
                            eventLog1.WriteEntry("Discarding data. Already in local database");
                    }
                    lastreceivedtagID = RFIDNR;
                    lockedUp.ReleaseMutex();
                }
            }
        }
    }

Мәселе қандай болуы мүмкін екенін ешкім білмейді ме?

2
Мен бұл 32/64 биттік мәселе деп ойламаймын. Қызмет менеджеріне қажеттіліксіз іске қосу/тоқтату кідірістерін шақыратын қызметтің айналасындағы буманы жазу мәселесі қандай болатынын білудің ең жақсы жолы. Сонан соң, сол бағдарламаны қашықтан отладтау сеансын пайдаланып бастауға болады және іске қосу тәртібінің қайда орналасқанын көруіңізге болады.
қосылды автор Dirk Dastardly, көзі
OnStart() әдісінде проблема деп есептеңіз. Оны диагностикалау үшін журналға қосыңыз.
қосылды автор Hans Passant, көзі
Сіз кез-келген сыртқы DLL-ді қолданасыз ба?
қосылды автор Erno de Weerd, көзі
Іс-шараны көрерменге қарауға және кез келген қателерді көрсеткенін көріңіз. Сіз өзіңіздің қызметіңізде Win7 жолағында қолданып отырған портта тыңдаған нәрсені тыңдағансыз ба?
қосылды автор user957902, көзі
Енді мен оны іске қосуға мүмкіндігім болды, бірақ секундында ешқандай ескертусіз тоқтайды. Портты тыңдайтын ешнәрсе жоқ - Менде OnStart-дегі оқиғалар туралы хабарлар бар, олар ол арқылы іске қосылып, OnStart әдісін аяқтайтындығын көрсетеді, бірақ ол басталатын таймер келесі әдістерді немесе бір нәрсені шақырмайды Мен білмейтін қате болып шығады.
қосылды автор GoD1x, көзі
Мен білмеймін (өтінімді жасамадым). Бағдарлама әлі жұмыс істемесе де, серверде әлі де жұмыс істейді, сондықтан оны іске қосуға тырысамын және жүйелік сілтемелерді ғана қостым.
қосылды автор GoD1x, көзі

Жауап жоқ

0