Windows hizmeti başlatılıyor, ancak OnStart () sonra hata olmadan hemen durduruluyor

Kısa bir süre önce 32bit Vista dizüstü bilgisayarıma mükemmel bir şekilde yüklenen ve çalışan bir Windows servisine bir TCP-port dinleme uygulamasını dönüştürdüm. Sorun, kurulumdan sonra, hangi çalışma, bir 64bit Win7 üzerinde hizmet (Remote Dekstop aracılığıyla) çalıştırmak için çalıştı ve temelde hizmet başlatılırken zaman aşımına uğradığını belirten bir hata 1053 bana verdi.

Şimdi hata olmadan başlatmak için aldım, ama tüm hata ya da herhangi bir olay olmadan hemen çıkış OnStart geçiyor. Timer'ımı Threading ile değiştirmeyi denedim, bunun garip başlangıçta sorun olup olmadığını görmek için var ama şans yok orada ... İşte hizmetin OnStart yöntemi ve sürekli olarak çalışması gereken yöntem.

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();
                }
            }
        }
    }

Sorunun ne olabileceği hakkında bir fikri olan var mı?

2
Bunun 32/64 bitlik bir sorun olduğunu düşünmüyorum. Sorunun ne olduğunu bulmak için düşünebildiğim en iyi yol, hizmet yöneticinize ihtiyaç duymadan, başlatma/durdurma yordamlarını çağıran hizmetinizin etrafına bir sarıcı yazmak olacaktır. Sonra bu programı uzaktan hata ayıklama oturumuyla başlatabilir ve başlangıç ​​rutininin nerede asılı olduğunu görebilirsiniz.
katma yazar Dirk Dastardly, kaynak
OnStart() yönteminizde bir sorun olduğunu varsayalım. Teşhis etmek için giriş ekleyin.
katma yazar Hans Passant, kaynak
Harici dll kullanıyor musunuz?
katma yazar Erno de Weerd, kaynak
Etkinlik görüntüleyicisine bakın ve herhangi bir hata gösterip göstermediğine bakın. Hizmetin Win7 kutusunda kullandığı bağlantı noktasını dinleyip dinlemediğini kontrol ettiniz mi?
katma yazar user957902, kaynak
Şimdi başlatabilirim, ama bir saniyede herhangi bir bildirimde bulunmadan durur. Limanda dinleyen başka bir şey yok - OnStart'ta devam eden bir olayım var, bu da bana orada çalıştığını ve OnStart yöntemini bitirdiğini gösteriyor - ama görünüşe göre başlattığı Timer aşağıdaki yöntemleri çağırmıyor ya da başka bir şey yanlış anlamadı ki farkında değilim.
katma yazar GoD1x, kaynak
Bildiğim kadarıyla (uygulamayı yapmadım). Her ne kadar hala çalıştırılmalı, uygulama öncesi, windows-service, hala sunucuda çalışıyor ve çalıştırmaya çalışıyorum ve sadece Sistem referanslarını ekledim.
katma yazar GoD1x, kaynak

Cevap yok

0
Windows
Windows
729 Katılımcıların

Windows ile ilgili tüm sorunların çözümüne yanıt arandığı ve paylaşımların yapıldığı bir gruptur. @SerCiTV @Tekpay @Apktanitim kanal/grupların uzantısıdır. https://t.me/joinchat/H1pwvUwqv4etCBtv9Oi_qQ