3
以下代碼非常簡單,它在控制檯應用程序中起作用。但由於某種原因,它不適用於WCF服務。具有批處理文件的目錄具有完全權限。有人能幫我嗎?我錯過了什麼?運行批處理文件的C#代碼在控制檯應用程序中工作,但是相同的代碼在WCF服務中不起作用
try
{
ProcessStartInfo psi = new ProcessStartInfo();
//specify the name and the arguements you want to pass
psi.FileName = ConfigurationManager.AppSettings["BatchFileLocation"];
psi.Arguments = filePath;
//Create new process and set the starting information
Process p = new Process();
p.StartInfo = psi;
//Set this so that you can tell when the process has completed
p.EnableRaisingEvents = true;
p.Start();
//wait until the process has completed
while (!p.HasExited)
{
System.Threading.Thread.Sleep(1000);
}
//check to see what the exit code was
if (p.ExitCode != 0)
{
logger.Write(p.ExitCode);
}
}
catch (Exception ex)
{
logger.Write(ex.Message);
}
你能定義'不行'嗎? – 2010-11-15 23:17:58
是的,有什麼不行?你有例外嗎? – Alxandr 2010-11-15 23:24:05
批處理文件通過SFTP將文件發送到不同的網絡位置。如果我從命令行(cmd.exe)運行批處理文件,它運行良好,文件傳輸成功。 當我從控制檯應用程序運行批處理文件時,批處理文件被執行並且文件傳輸正常。但從WCF服務它返回exitcode 1.我不能看到消息出現在命令行上,因爲批處理命令執行,因爲控制檯窗口不會從WCF服務執行時彈出。如果它的控制檯C#應用程序控制臺窗口彈出&我可以看到出現的消息中的錯誤。 – 2010-11-16 16:08:46