Frage

Ich habe eine Anwendung, die nur 1 Instanz zu jeder Zeit ausgeführt haben kann, aber wenn eine zweite Instanz gestartet wird es zu einem gemeinsamen Logfile protokolliert werden muss, dass die ersten auch mit werden könnte.

Ich habe die Prüfung für wie viele Instanzen laufen, und ich plane, auf einfach auf den Event Logger zunächst anmelden, aber die Anwendung kann in Benutzer oder Systemkontext ausgeführt werden und Ausnahmen ausgelöst werden, wenn versucht wird, die eventlog Quelle als abfragen Benutzer, so dass die Idee verworfen werden, wenn die Sicherheitsprotokolle für den Benutzer nicht zugänglich sind.

So wollte ich herausfinden, was die sicherste Methode der hat zwei separate Instanzen derselben Anwendung schreibt in eine Protokolldatei, dass würde sicherstellen würde sowohl die Möglichkeit, es zu schreiben bekommen.

Ich würde es vorziehen, nicht einen vorhandenen zusätzlichen Rahmen, wenn vermeidbar verwende

Jede Hilfe sehr geschätzt.

War es hilfreich?

Lösung

Mutex könnte für die Inter Synchronisation einer gemeinsam genutzten Ressource wie Protokolldatei verwendet. Hier ist eine Probe .

Andere Tipps

Sie können immer auf das Systemereignisprotokoll schreiben. Keine Sperren oder irgendetwas benötigt, und der Ereignisanzeige ist robuster als einige geben ihm Kredit für.

Als Antwort auf Ihren Kommentar, fragte ein anderer Benutzer die Frage über Schreibberechtigungen für das Ereignisprotokoll hier auf SO. Die Antwort auf den MSDN-Artikel verknüpft, der beschreibt, wie das auszuführen.

Sehen Sie diese Frage hier .

Sie können ausweichen das Problem, wenn Sie es vorziehen, ...

Wenn dies eine Windows-Anwendung ist, können Sie die erste Instanz eine Nachricht senden und dann einfach aufhören. Auf Empfang der Nachricht kann die ursprüngliche Instanz ohne Probleme in die Protokolldatei schreiben.

Warum nicht benutzen syslog Protokoll? Auf diese Weise können Sie die Protokolle in einem sehr standardbasierte und flexible Art und Weise liefern. Das Protokoll selbst ist recht einfach, aber es gibt viele Beispiele im Netz, z.B. hier . Wenn Ihre App für den Einsatz in Unternehmen bestimmt ist, eine Standardmethode der Protokollierung mit könnte ein großes Plus sein. (Und Sie brauchen nicht die Dateien zu erhalten entweder - es wird eine Aufgabe einer spezialisierten Software, die genau das tut)

Einen Weg zu hacken es sein würde, Speicher-Karte die Protokolldatei. Auf diese Weise beide Instanzen der Anwendung teilen sich den gleichen virtuellen Speicherabbild der Datei. Dann gibt es eine Reihe von Möglichkeiten, einen Mutex in der Datei zu implementieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top