Forum
Tipps
News
Menu-Icon

C# Berechtigung für Process.Start() auf Windows Server 2008

Hi,

In einer C#-Anwendung, die auf einem Windows Server 2003 derzeit ohne Probleme läuft und die ich auf einen anderen Server (Windows 2008 mit Plesk) umziehen soll, werden zunächst folgende Variablen erstellt:

string dateieins = "c:\\ein\\ordner\\mit\\der\\quelldatei\\diequelldatei";
string dateizwei = "c:\\ein\\leerer\\ordner\\zieldatei"; // Die Zieldatei existiert noch nicht
string batdatei = "c:\\ein\\ordner\\mit\\batdatei\\batdatei.bat";
string derbefehl "c:\\ein\\ordner\\mit\\einer\\exedatei.exe -parameter1 -parameter2 " + dateieins + " " + dateizwei;

// Danach wird in dem Pfad batdatei eine batdatei mit dem Inhalt aus derbefehl erzeugt. Der Befehl soll die Datei dateieins mit Hilfe der exedatei.exe und dem Ziel dateizwei verschlüsseln. Danach wird die bat-Datei ausgeführt und gewartet, bis sie vollständig ausgeführt wurde.

File.WriteAllText(batdatei,derbefehl);
Process prCrypt = Process.Start(batdatei);
while (!prCrypt.HasExited)
{
}


Mein Problem:
Auf dem alten Server klappts, auf dem neuen nicht. Wenn ich jedoch auf dem neuen Server die bat-Datei manuell ausführe, funktioniert diese. Die Pfade sind also alle richtig. Und da der Pfad zur bat-Datei als Variable abgelegt ist, muss dieser Pfad auch richtig sein. Dem Useraccount, der die bat-Datei erzeugt, habe ich Vollzugriff auf alle benötigten Ordner gegeben. Eigentlich sollte das doch der selbe Useraccount sein, über den die bat-Datei dann auch ausgeführt wird.

Leider erhalte ich keinen Log zu diesem Problem. Ich erhalte nur folgende Fehlermeldung durch das Programm, welches die Anwendung auf dem Server aufruft:

System.Web.Services.Protocols.SoapException: Die Anforderung konnte vom Server nicht verarbeitet werden. ---> The specified directory is invalid.

Das würde aber heissen, der Ordner sei falsch. Ich vermute irgendein Berechtigungsproblem, weiss aber nicht, wie ich den Fehler nun finden soll.
Vielleicht hat hier ja jemand eine Idee. 


Nachtrag! Irgendwo ist mir der zweite \ beim Kopieren immer abhanden gekommen. Habe das jetzt mal nachgeholt. Ich hoffe, man kann nun sehen, dass ich die \ im Pfad korrekt escaped habe.

« Letzte Änderung: 25.03.10, 19:37:40 von MBGucky »
« VBS dateienVisual Basic 2008 Programm mit MS Access »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Application Server
Ein Application Server, zu deutsch Anwedungsserver, ist ein Netzwerkrechner (Server) auf dem verschiedenste Anwendungsprogramme ausgeführt werden können. Der Be...

Printserver
Der Printserver ist ein Rechner im Netzwerk, der den Datenfluß zu einem oder mehreren Druckern steuert und eingehende Druckaufträge in einer Warteschlange verw...

Server
Der Begriff Server stammt aus dem englischen und bedeutet "Diener". In der EDV bezeichntet Server entweder eine Software- oder Hardwarekomponente.   Als Software, ...