2015-04-02 53 views
0

我想从我的c#wpf应用程序启动tomcat使用startup.bat和部署战争文件后,我想关闭它。这是我一直在做的事情,它似乎运作良好。C#System.Diagnostics.Process如何处理多个批处理文件

System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
      proc.StartInfo.FileName = Tomcat_DIR_tbox.Text + @"\bin\startup.bat"; 
      proc.StartInfo.WorkingDirectory = Tomcat_DIR_tbox.Text + @"\bin\"; 
      proc.StartInfo.RedirectStandardError = true; 
      proc.StartInfo.RedirectStandardOutput = true; 
      proc.StartInfo.UseShellExecute = false; 
      proc.StartInfo.CreateNoWindow = true; 
      proc.Start(); 
      // do some bla bla 
      //Close Tomcat 
      proc.StartInfo.Filename = Tomcat_DIR_tbox.Text + @"\bin\shutdown.bat"; 
      proc.Start(); 
      proc.WaitForExit(); 

现在我一直在想,虽然它的工作原理,它不是很正确吗? Tomcat应用程序从未停止过,除非我告诉它,使用相同的进程关闭它也感觉不对?

我现在已经下来是这样的:贮存过程中用于启动Tomcat和创造了一个又一个要求必须关机:

//Close tomcat    
      System.Diagnostics.Process proc_shutdown = new System.Diagnostics.Process();    
      proc_shutdown.StartInfo.WorkingDirectory = Tomcat_DIR_tbox.Text + @"\bin\"; 
      proc_shutdown.StartInfo.FileName = Tomcat_DIR_tbox.Text + @"\bin\shutdown.bat"; 
      proc_shutdown.StartInfo.CreateNoWindow = true; 
      proc_shutdown.Start(); 
      proc_shutdown.WaitForExit(); 

我不喜欢这个唯一方法是它带来了一条消息,询问我是否允许从我的应用程序调用shutdown.bat,我可以取消选中“不要再问我这个文件”,但我仍然不喜欢用户体验它提供。

我也尝试直接调用proc.Close()而不是做proc.Filename = path_to_shutdown和proc.Start(),但它似乎挂断了我的应用程序,并且从不关闭tomcat。

那么启动tomcat,做一些事情然后关闭它的最好方法是什么?谢谢,Razvan。

回答

0

根据我的观察,你正在做的是很好的启动和停止从WPF应用程序的Tomcat服务器。但是,如果你想隐藏安全警告,那么打开IE浏览器进入工具 - > Internet选项,然后从那里选择“安全”选项卡选择(自定义级别..)..在该组中,将有选项称为

“启动应用程序和不安全的文件” - >选择启用单选按钮。然后它不会显示“允许shutdown.bat”弹出窗口。

希望它有帮助。

相关问题