Ausführen der Batch-Datei aus C # Berechtigungsproblem

8

Ich habe eine Batch-Datei, um ein VB-Skript auszuführen. Während das Ausführen der Batch-Datei per Doppelklick funktioniert, aber wenn ich das gleiche mit C # getan habe, arbeitet es an meiner lokalen Umgebung, aber nicht am Staging-Server (Windows Server 2008r2), gibt es irgendeine Berechtigungsstufe, die ich für diese Ausführung anwenden muss . Vom Staging-Server kann ich die Batch-Datei doppelklicken und ausführen ...

Ich habe mich beim Server mit Administratorkonto angemeldet und die Anwendung als localhost durchsucht.

Gibt es etwas, das mir bei der Ausführung der Batch-Datei von C # fehlt,

Ich glaube nicht, dass es Probleme mit meinem C # -Code gibt, da er in meiner lokalen Umgebung gut funktioniert, sowieso folgt mein C # -Code,

%Vor%

* Dateiname ist der Pfad zur Stapeldatei. Außerdem habe ich die volle Berechtigung für die Ordner, die sowohl Batch-Datei und VBS-Dateien enthalten.

    
sudheshna 02.05.2012, 08:51
quelle

2 Antworten

3

Damit dies funktioniert, muss Ihr App-Pool als Benutzer ausgeführt werden, der Zugriff auf die Stapeldatei hat. Informationen zum Ändern der App-Pool-Identität für IIS 7 oder IIS 6 .

    
Kartheek N 02.05.2012, 09:11
quelle
2

Um zu erweitern, was Kartheek gesagt hat:

  • In IIS 7 werden Anwendungspools als App-Pool-Konto ausgeführt, IISAPPPOOL\AppPoolName
  • In IIS 6 werden Anwendungspools als Network Service ausgeführt.
  • In beiden Fällen haben diese Konten keinen Zugriff auf den Dokumentenordner eines Benutzers und können (standardmäßig) nur aus allgemeinen Datenspeichern lesen.

Im Allgemeinen möchten Sie den App-Pool-Account behalten, da er hilft, die Daten zu trennen. Daher würde ich sicherstellen, dass Sie Lese- und Ausführungsberechtigungen für die Bat-Datei erteilen, die Sie für den App-Pool-Account benötigen. Sie benötigen außerdem die entsprechenden Berechtigungen für alle Dateien / Ordner, aus denen die Fledermaus lesen / schreiben muss.

Sie müssen nichts in Ihrer App ändern, um dieses Problem zu beheben, es sei denn, Sie möchten die IIS-Anwendung als den Benutzer tarnen, der tatsächlich auf der Website sitzt (das funktioniert nur, wenn Sie eine Form der Authentifizierung verwenden). ) Im Allgemeinen ist das eine schlechte Idee - also ist es am besten, nur die Berechtigungen anzupassen.

Als allgemeine Faustregel gilt, dass Sie bei der Arbeit an einem Webserver die Berechtigungen / Ausführungsstufen so niedrig wie möglich halten möchten.

    
debracey 02.05.2012 23:38
quelle