Fehler: Wenn Sie einen Windows-Dienst starten, wird die Fehlermeldung "Dienst antwortete nicht rechtzeitig"

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 841713 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Wenn Sie versuchen, ein Windows-Dienst zu starten, die auf Microsoft .NET Framework 1.0 basiert und deren AutoLog -Eigenschaft auf True festgelegt ist, der Windows-Dienst reagiert möglicherweise nicht mehr, wenn benutzerdefinierte Ereignisprotokoll voll ist. Darüber hinaus erhalten Sie folgende Fehlermeldung:
Den Service Name-Dienst konnte nicht auf dem lokalen Computer gestartet werden.
Fehler 1053: Der Dienst hat nicht auf die Start- oder Steuerungsanforderung rechtzeitig reagiert.
Der Service Name ist der Windows-Dienst, die Sie mithilfe von Microsoft .NET Framework 1.0 erstellt.

Ursache

Wenn der Windows-Dienst gestartet wird, schreibt die ServiceBase -Klasse das Ereignis, benutzerdefiniertes Ereignisprotokoll. Wenn benutzerdefinierte Ereignisprotokoll voll ist, versucht die ServiceBase -Klasse, die Antwort, benutzerdefiniertes Ereignisprotokoll zu schreiben Wenn die OnStart -Methode wird aufgerufen. Da benutzerdefinierte Ereignisprotokoll voll ist, die OnStart -Methode kann nicht die Antwort auf die benutzerdefinierte Ereignisprotokolldatei geschrieben und die ServiceBase -Klasse nicht mehr reagiert. Daher gibt der Windows-Dienst an, dass der Status gestartet ist.

Lösung

Um dieses Problem zu beheben, legen Sie die AutoLog -Eigenschaft des Windows-Diensts auf False fest.

Status

Microsoft hat bestätigt, dass dies einen Fehler in den Microsoft-Produkten ist, die im Abschnitt "Gilt für" aufgeführt sind.

Weitere Informationen

Schritte zum Reproduzieren des Problems

Gehen Sie folgendermaßen vor, um dieses Problem zu reproduzieren. Diese Schritte werden weiter unten in diesem Abschnitt ausführlich beschrieben.
  1. Erstellen Sie einen Windows-Dienst mithilfe von Microsoft Visual Studio .NET.
  2. Erstellen Sie und hängen Sie ein benutzerdefiniertes Ereignisprotokoll an der Windows-Dienst.
  3. Fügen Sie ein Installationsprogramm für Service der Windows-Dienst, die Sie zuvor erstellt haben.
  4. Der neue Dienst Projektmappe ein Setup-Projekt hinzufügen.
  5. Bereitstellen des Windows-Diensts.
  6. Legen Sie die Ereignisprotokoll-Eigenschaft.
  7. Starten Sie und beenden Sie des Dienstes.
Hinweis: Sie können dieses Problem nur auf dem Computer reproduzieren, auf dem Microsoft .NET Framework 1.0 ausgeführt wird.

Gehen Sie folgendermaßen vor, um das Problem zu reproduzieren:
  1. Erstellen Sie einen Windows-Dienst mithilfe von Microsoft Visual Studio .NET:
    1. Starten Sie Visual Studio .NET.
    2. Zeigen im Menü Datei auf neu , und klicken Sie dann auf Projekt . Das Dialogfeld Neues Projekt angezeigt wird.
    3. Klicken Sie unter Projekttypen auf Visual C#-Projekte .
    4. Klicken Sie unter Vorlagen auf Windows-Dienst .
    5. Geben Sie Neuer Dienst in das Feld Name ein, und klicken Sie dann auf OK .
  2. Erstellen Sie und ordnen Sie ein benutzerdefiniertes Ereignisprotokoll zu den Windows-Dienst:
    1. Klicken Sie im Menü Ansicht auf Toolbox .
    2. Fügen Sie in der Toolbox eine EventLog -Komponente. Standardmäßig EventLog1 wird erstellt und der Entwurfsmodus hinzugefügt wird.
    3. Klicken Sie auf die Entwurfsansicht der Service1-Dienst, und drücken Sie dann F4. Das Fenster Eigenschaften wird angezeigt.
    4. Legen Sie sowohl die CanPauseAndContinue -Eigenschaft und die CanShutdown -Eigenschaft auf true .
    5. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Datei Service1.cs ; klicken Sie dann auf Code anzeigen .
    6. Suchen Sie in Service1.cs Datei den folgenden Code:
      public Service1()
      		{
      			// This call is required by the Windows.Forms component designer.
      			InitializeComponent();
      den folgenden Code nach dem vorherigen Code hinzufügen:
      if(!System.Diagnostics.EventLog.SourceExists("MyLogSource"))
      			{
      				System.Diagnostics.EventLog.CreateEventSource("MyLogSource", "MyLog");
      			}
      			eventLog1.Source = "MyLogSource";
      			eventLog1.Log = "MyLog";
      
    7. Suchen Sie in der Datei Service1.cs den folgenden Code:
      protected override void OnStart(string[] args)
      		{
      den folgenden Code nach dem vorherigen Code hinzufügen:
      eventLog1.WriteEntry("My Service Has Been Started");
    8. Suchen Sie in der Datei Service1.cs den folgenden Code:
      protected override void OnStop()
      		{
      den folgenden Code nach dem vorherigen Code hinzufügen:
      eventLog1.WriteEntry("My Service Has Been Stopped");
    9. Klicken Sie im Menü Datei auf Speichern Service1.cs um die Datei zu speichern.
    10. Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf Neuer Dienst und klicken Sie dann auf Eigenschaften . Das Dialogfeld Neuer Service Eigenschaftenseiten angezeigt wird.
    11. Wählen Sie in der Anwendungsabschnitt New_Service.Service1 im, die neben Startobjekt aus und klicken Sie dann auf OK .
    12. Klicken Sie im Menü Erstellen auf Erstellen Projektmappen .
  3. Fügen Sie ein Service-Installationsprogramm der Windows-Dienst, die Sie zuvor erstellt haben:
    1. Nachdem die Projektmappe abgeschlossen ist, klicken Sie mit der rechten Maustaste auf Service1.cs im Projektmappen-Explorer und klicken Sie dann auf Ansicht-Designer . Die Seite Service1.cs [Design] wird angezeigt.
    2. Klicken Sie im Menü Ansicht auf Eigenschaftenfenster . Das Fenster Eigenschaften wird angezeigt.
    3. Klicken Sie auf den Installer hinzufügen Link am unteren Rand im Eigenschaftenfenster. Die Komponente serviceProcessInstaller1 und serviceInstaller1 Komponente werden zur Seite Projekt Installer.cs [Design] hinzugefügt.
    4. Auf das Projekt Installer.cs [Design] Seite, klicken Sie auf serviceProcessInstaller1 und drücken Sie dann F4. Die Eigenschaften geöffnet.
    5. Legen Sie die Konto -Eigenschaft auf LocalSystem .
    6. Auf das Projekt Installer.cs [Design] Seite, klicken Sie auf ServiceInstaller 1 und drücken Sie dann F4. Die Eigenschaften geöffnet.
    7. Die StartType -Eigenschaft automatisch festgelegt.
  4. Der neue Dienst Projektmappe ein Setup-Projekt hinzufügen:
    1. Zeigen Sie die Datei -Menü auf Hinzufügen Projekt , und klicken Sie dann auf Neues Projekt . Das Dialogfeld Add New Project angezeigt wird.
    2. Klicken Sie unter Projekttypen auf Setup- und Weitergabeprojekte .
    3. Vorlagen klicken Sie auf Setup-Projekt , geben Sie unter MySetup1 in das Feld Name , und klicken Sie dann auf OK . Die Seite Dateisystem (MySetup1) wird angezeigt.

      Hinweis: MySetup1 ist ein Platzhalter für den Namen des Setup-Projekts, die Sie erstellen möchten.
    4. Klicken Sie unter Dateisystem auf Zielcomputer mit der rechten Maustaste auf Anwendungsordner , zeigen Sie auf Hinzufügen und klicken Sie dann auf Projektausgabe . Das Dialogfeld Projektausgabegruppe hinzufügen angezeigt wird.
    5. Klicken Sie auf primäre Ausgabe aus, und klicken Sie dann auf OK , um das Dialogfeld zu schließen.
    6. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf MySetup1, zeigen Sie auf Ansicht und klicken Sie dann auf Benutzerdefinierte Aktionen . Benutzerdefinierte Aktionen (MySetup1) -Editor wird angezeigt.
    7. In der benutzerdefinierte Aktionen (MySetup1) -Editor-Seite, klicken Sie mit der rechten Maustaste auf Benutzerdefinierte Aktionen , und klicken Sie die Benutzerdefinierte Aktion hinzufügen . Das Dialogfeld Element im Projekt auswählen wird angezeigt.
    8. Doppelklicken Sie auf Anwendungsordner , klicken Sie auf primäre Ausgabe von NewService (aktiv) , und klicken Sie dann auf OK .
    9. Klicken Sie im Menü Erstellen auf Erstellen MySetup1.
  5. Bereitstellen des Windows-Diensts:
    1. Suchen Sie den Debug-Ordner des Projekts MySetup1. Doppelklicken Sie auf MySetup1 MSI . Das MySetup1-Dialogfeld wird angezeigt.
    2. Klicken Sie auf Weiter .
    3. Klicken Sie auf der Seite Installationsordner auswählen auf jeder , und klicken Sie dann auf Weiter .
    4. Klicken Sie auf der Seite Installation auf Weiter . Die Installieren MySetup1 Seite wird angezeigt.
    5. Nachdem die Installation abgeschlossen ist, wird die Installation beendet Seite angezeigt. Klicken Sie auf Schließen , um das Dialogfeld MySetup1 zu schließen.
  6. Legen Sie die Ereignisprotokoll-Eigenschaft:
    1. Klicken Sie auf Start , klicken Sie auf Ausführen , geben Sie services.msc im Feld Öffnen und klicken Sie dann auf OK . Das Fenster angezeigt.
    2. Suchen Sie den Dienst Service1, klicken Sie mit der rechten Maustaste auf Service1 -Dienst und klicken Sie dann auf Eigenschaften . Das Dialogfeld Eigenschaften von Service1 (Lokaler Computer) angezeigt wird.
    3. Klicken Sie auf Start , um die Service1 starten.
    4. Klicken Sie auf Start , klicken Sie auf Ausführen , geben Sie Eventvwr im Feld Öffnen und klicken Sie dann auf OK . Die Ereignisanzeige geöffnet.
    5. Im linken Bereich der Ereignisanzeige im Fenster klicken Sie mit der rechten Maustaste auf MyLog , und klicken Sie dann auf Eigenschaften . Das Dialogfeld Eigenschaften von MyLog wird angezeigt.
    6. Klicken Sie unter Größe legen Sie Maximale Protokollgröße auf 64 Kilobyte (KB) und dann auf Ereignisse (Protokoll manuell löschen) nicht überschreiben .
    7. Klicken Sie auf OK und dann schließen Ereignisanzeige.
  7. Starten Sie und beenden Sie den Dienst:
    1. Klicken Sie auf Start , klicken Sie auf Ausführen , geben Sie services.msc im Feld Öffnen und klicken Sie dann auf OK . Das Fenster angezeigt.
    2. Suchen Sie den Dienst Service1, klicken Sie mit der rechten Maustaste auf den Service1 -Dienst und klicken Sie dann auf Eigenschaften . Das Dialogfeld Eigenschaften von Service1 (Lokaler Computer) angezeigt wird.
    3. Füllen Sie die Protokolldatei MyLog, so dass es größer als 64 KB ist. Dazu, manuell starten Sie und beenden Sie den Dienst wiederholt. Sobald die Datei MyLog voll ist, versuchen Sie, den Dienst zu starten.

      Sie erhalten die Fehlermeldung, das im Abschnitt "Problembeschreibung" genannt wird.

Informationsquellen

Weitere Informationen der folgenden MSDN-Website:
EventLog-Klasse
http://msdn.microsoft.com/en-us/library/system.diagnostics.eventlog(vs.71).aspx
Weitere Informationen zum Erstellen eines Setup-Projekts finden Sie in der folgenden Artikeln der Microsoft Knowledge Base:
317421Erstellen Sie ein Setupprojekt für ein Windows-Dienst in Visual Basic .NET
816169Erstellen Sie ein Setup-Projekt für eine Windows-Dienstanwendung in Visual c# .NET

Eigenschaften

Artikel-ID: 841713 - Geändert am: Mittwoch, 26. Mai 2004 - Version: 1.3
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft .NET Framework 1.0
Keywords: 
kbmt kberrmsg kbscm kbservice kbeventlog kbbug KB841713 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 841713
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com