Laden...

Forenbeiträge von riehol Ingesamt 3 Beiträge

11.01.2013 - 10:21 Uhr

Ich habe die Funktionalität schon gekapselt und bin gerade dabei ein kleines Tool ohne GUI zu verfassen, das sollte auch klappen.

Aber mein Hauptproblem bleibt weiterhin, wie kann ich aus meinem Hauptprogramm heraus bestehende Parameter nehmen (Zeit und Intervall) und damit eine geplante Aufgabe erstellen die dann unabhängig davon, ob ein Benutzer angemeldet ist, oder nicht, mein Kommandozeilentool aufruft?

Danke schon einmal für die bestehenden Antworten!

Grüße
riehol

08.01.2013 - 17:24 Uhr

Hallo liebe Entwicklergemeinde,

ich hoffe, ich habe nichts übersehen, aber nach längerem Suchen suche ich Rat bei folgendem Problem.

Ich habe bereits eine MDI-Anwendung geschreiben, die ein simples Backup und Restore für eine PostgreSQL-Datenbank macht, sowie das Backup und Restore über Write-Ahead-Logging konfiguriert und der User nichts mehr an der Datenbank selber machen muss.

Mit Hilfe dieses Programmes soll es auch möglich sein, das Ganze automatisch ausführen zu lassen, auch dann wenn kein Benutzer an dem Rechner angemeldet ist.
Angabe von Uhrzeit und Datum, sowie die Backup-Periode ist alles realisiert. Ich hatte einen Scheduled Task erstellt, der genau das getan hat. Aber leider nur dann, wenn auch jemand an dem Rechner angemeldet ist.

Kern des Problems ist, dass aus dem Programm irgendwie heraus ein Dienst oder ein Task installiert werden soll, der zu einem gewissen Zeitpunkt, meinetwegen 3:00 Nachts, das Programm mit dem Argument "automatic" aufruft. Dann (das sollte auch schon richtig funktionieren) erledigt mein Programm seine Arbeit und beendet sich wieder selbstständig.

Nur das installieren des automatischen Dienstes / Tasks bereitet mit Kopfschmerzen. Wie würdet ihr das machen?

Wenn mir irgendjemand helfen kann, wäre ich sehr glücklich!!!

Vielen Dank und viele Grüße
riehol

11.09.2012 - 16:23 Uhr

verwendetes Datenbanksystem: PostgreSQL

Hallo,

mir stellt sich unter Windows 7 und C# bei der Verwendung von PostgreSQL als Datenbanksystem folgende Problematik.

Ich möchte aus meiner Anwendung heraus das kontinuierliche Archivieren der Datenbank aktivieren / deaktivieren. Dafür muss ich Konfigurationsdateien editieren und dann den Datenbank-Server neu starten.
Das Editieren ist kein Problem, nur das neu starten des Servers scheitert an den Benutzerrechten.
Das neu Starten geht nur von einem Administrator-Account oder dem bei der Installation der Datenbank angelegten Benutzer »postgres« heraus.

Damit eine in der Anzeige existierende Scrollbar weiter funktioniert und nicht stehen bleibt, starte ich aus dem Hauptprogramm einen neuen Thread. In diesem Thread habe ich folgende Wege, leider bislang ohne Erfolg, ausprobiert:

1.)
Ich habe eine Batch-Datei erstellt, in der ich ein Postgres-Tool »pg_ctl.exe« ansprechen wollte. Die Batch-Datei habe ich durch einen Process gestartet und gewartet, bis der Process fertig ist.
2.)
Dann wollte ich mich des ServiceControllers bedienen. Habe mir über den ServiceName den korrekten Service gesucht und versucht ihn mit .Stop() und .Start() neu zu starten. Ich habe auch hier auf den Status gewartet.

Auf beiden Wegen erhielt ich Fehlermeldungen, welche mir besagten, dass ich nicht die Berechtigungen hätte, entweder über die Batch-Datei pg_ctl zu benutzen, oder den Service zu stoppen.

Kann ich irgendwie unter benutzung meines »postgres«-Benutzerkontos und des Passwortes diese Aktionen ausführen? Oder mir für diesen arbeitenden Thread bzw. nur für den erstellten Process Administratorrechte besorgen?

Folgende Dinge habe ich durch googlen bereits versucht.

Ich bin langsam am verzweifeln.... und hoffe, jemand weiß einen Weg.

Für jede Antwort bin ich sehr dankbar.
Viele Grüße
Riewert