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.
MBGucky (700) 16x Beste Antwort 44x "Danke"
|