2016-04-04 10 views
0

im Hosten einer ASP.net-Anwendung in IIS8 auf Windows Server 2012 ausführen. diese Anwendung soll eine Batchdatei ausführen.IIS 8 (Windows Server 2012) kann keine Batch-Datei

es funktioniert perfekt, wenn ich die Anwendung mit Visual Studio im Debug-Modus ausführen. aber wenn ich es auf den IIS hochladen, kann die Anwendung die Batch-Datei nicht ausführen.

Ich habe versucht, die Batch-Datei mit EXE-Datei zu ändern. gleiches Problem.

die Batch-Datei annehmen, von der Anwendung (WCF-Anwendung), die in der IIS auszuführen:

System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
       proc.StartInfo.WorkingDirectory = @"C:\path"; 
       proc.StartInfo.FileName = @"C:\path\executer.bat"; 
       proc.Start(); 
       proc.Close(); 

bitte helfen,

+0

Sie müssen wesentlich detaillierter angeben, wie genau diese Batch-Datei ausgeführt werden soll. Wird es von einer ASP.NET-Seite aufgerufen? Ist es Teil eines Webdienstes? Es gibt einfach nicht genug, um uns zu helfen. –

+0

Ich habe weitere Details hinzugefügt. –

+1

Wenn Sie sicher sind, dass die Stapeldatei nicht zündet, dann würde ich einige try-catch-Blöcke um den Code legen, der sie auslöst, und versuchen, einige Protokollierungsinformationen zu erhalten. Auf einem Server befassen Sie sich höchstwahrscheinlich mit Berechtigungsproblemen, bei denen der Kontenkontext, auf dem die Site ausgeführt wird, keinen Zugriff auf den Batchdatei-Hostpfad hat. –

Antwort

0

Wahrscheinlich ist das Problem, das Sie erleben ist auf Berechtigungen. Sie müssen überprüfen, für welches Konto der IIS-Anwendungspool, unter dem Ihre Anwendung ausgeführt wird, konfiguriert ist und ob dieses Konto über Berechtigungen zum Ausführen der Stapeldatei oder der Befehle in dieser Stapeldatei verfügt.

Bei der Ausführung in Visual Studio wird wahrscheinlich IIS Express als interaktiver Benutzer ausgeführt.

Wenn Sie unter IIS standardmäßig ausgeführt werden, laufen Sie unter ApplicationPoolUser Identität, die keine Rechte zum Ausführen von Code hat, hat keinen Dateizugriff oder irgendetwas anderes. Wenn Sie nicht explizit ein anderes Konto mit entsprechenden Dateizugriffsrechten für die Stapeldatei und Berechtigungen zum Ausführen der Befehle in der Stapeldatei festgelegt haben, können Sie die Stapeldatei nicht in IIS ausführen. Um dies zu ändern, ändern Sie die Benutzeridentität des Anwendungspools in einen Benutzer, der Rechte zum Lesen und Ausführen der Stapeldatei auf dem Datenträger hat und über alle erforderlichen Rechte zum Ausführen dessen, was in der Stapeldatei ausgeführt wird.

-1

Ihr Code funktioniert einwandfrei. Mai werden einige Problem in Batch-Datei gibt es i vor .My Batch-Datei konfrontiert ist

start "" BATCHLOG.exe 

wo BATCHLOG.exe die ausführbare

Einige Male Batch-Datei nur

BATCHLOG.exe benannt ist

funktioniert nicht richtig auf Windows-Scheduler kann in diesem Fall von Ihnen sein, so

0

Stellen Sie sicher, dass für alle Ordner oder Dateien, auf die Ihre Anwendung zugreift, Berechtigungen für das AppPoolUser-Konto erteilt wurden. Es ist auch wichtig, Ihre Anwendungsressourcenordner ebenfalls zu überprüfen. Wenn Sie beispielsweise Protokolle schreiben, stellen Sie sicher, dass Sie dem Benutzerkonto appPool genügend Berechtigungen zum Schreiben in diese Datei erteilen.