Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在.NET中运行一台机器上运行而另一台机器上运行的批处理(.bat)文件_C#_.net_Iis_Batch File - Fatal编程技术网

C# 如何在.NET中运行一台机器上运行而另一台机器上运行的批处理(.bat)文件

C# 如何在.NET中运行一台机器上运行而另一台机器上运行的批处理(.bat)文件,c#,.net,iis,batch-file,C#,.net,Iis,Batch File,当我启动一个进程,启动一个带有本地参数的BAT文件时,一切都正常。我将此网站上载到windows服务器,然后一个进程运行此进程失败。它只是在执行代码,什么也没发生 我尝试了UseShellExecute=false并使用cmd运行它,但没有 我还可以检查什么?从依赖项开始。例如: 服务器上是否有cygwin或类似的东西可以运行bashshell? 执行进程的用户实际上是否有权启动bashshell? 执行流程的用户是否有权在bash脚本中执行操作? 它们是文件路径还是环境变量依赖关系?这些路径和

当我启动一个进程,启动一个带有本地参数的BAT文件时,一切都正常。我将此网站上载到windows服务器,然后一个进程运行此进程失败。它只是在执行代码,什么也没发生

我尝试了UseShellExecute=false并使用cmd运行它,但没有


我还可以检查什么?

从依赖项开始。例如:

服务器上是否有cygwin或类似的东西可以运行bashshell? 执行进程的用户实际上是否有权启动bashshell? 执行流程的用户是否有权在bash脚本中执行操作? 它们是文件路径还是环境变量依赖关系?这些路径和变量是否存在? 测试的一种方法是使用用于执行脚本的用户帐户登录到该服务器,看看您是否可以自己运行该脚本


很可能bash脚本在尝试提示用户输入时失败并挂起。UAC也可能处于打开状态,脚本需要提升权限才能执行操作。如果看不到脚本,很难判断。

您几乎肯定会遇到安全/权限问题。检查服务器的事件日志,尤其是安全事件日志。此外,如果可以的话,在服务器上运行SysInternals进程监视器procmon可能也会有所帮助,如果没有其他帮助的话

除非您已将网站设置为使用模拟,否则它将使用本地有限的帐户运行。对于Windows Server 2008,DefaultAppPool将使用本地IIS APPPOOL\DefaultAppPool标识,该标识几乎肯定没有调用bash的权限

它可能在本地开发计算机上工作,因为VisualStudio将模拟您(可能是本地管理员)来调试应用程序


要解决此问题,您需要为用于站点执行bash的应用程序池的标识授予权限,或者这可能更容易将应用程序池的标识至少更改为域用户或本地用户。

如果要获得帮助,请显示代码您是否尝试远程运行进程?还是在同一台机器上?就像@SteveB写的,show code试图在同一台机器上运行它一样,locallyWell我将池更改为默认池,并尝试了所有池,但仍然无法运行。它实际上被调用了,因为我看到创建的结果目录,但是接下来的所有步骤都被取消了。我说的是ant进程,它应该使用java来创建apk文件。首先,当您使用cmd时,您的标识的环境变量(如PATH和JAVA_HOME)可能与DefaultAppPool的标识不同。确保已将这些设置为系统环境变量。其次,您应该尝试在.bat文件中进行一些诊断。确保参数(即%1)是您认为应该的参数。使用@echo%1输出值,并使用mybatch.bat>logfile.txt捕获输出,其中mybatch.bat是.bat的名称。文件1-我的IIS服务器运行其他bat脚本,所以我认为这不是问题2-用户拥有权限,它启动脚本但从不结束。3-我认为是的,因为在cmd上运行它是有效的。4-所有路径和变量定义良好。当我简单地在cmd上运行它时,它是ok的。@Igor:我很困惑。你说的是猛击还是蝙蝠?这两件事完全是两码事。对不起,我说的是蝙蝠file@Igor:如果不知道批处理文件正在做什么,就不可能为您提供更多的方向。我真的认为这是一个安全问题。