我有一个批处理文件来执行VB脚本。虽然通过双击执行批处理文件将起作用,但是当我使用C#完成相同的操作时,它在本地环境中工作但不在登台服务器(Windows Server 2008r2)中工作,是否需要申请此执行的任何权限级别。从登台服务器,我可以双击并执行批处理文件......
我已使用管理员帐户登录服务器,并将该应用程序作为localhost浏览。
从C#,
执行批处理文件时是否有任何遗漏我认为我的C#代码没有任何问题,因为它在我的本地环境中工作正常,无论如何以下是我的C#代码,
if (File.Exists(FileName*))
{
System.Diagnostics.ProcessStartInfo p = new System.Diagnostics.ProcessStartInfo(FileName);
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = FileName;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.UseShellExecute = false;
proc.Start();
proc.WaitForExit();
}
else
{
lblMsg.Text = "Sorry unable to process you request";
}
* FileName 是批处理文件的路径。此外,我还为包含批处理文件和vbs文件的文件夹设置了完全权限。
答案 0 :(得分:3)
答案 1 :(得分:2)
扩展Kartheek的说法:
IISAPPPOOL\AppPoolName
Network Service
通常,您希望保留应用程序池帐户,因为它有助于隔离数据 - 所以我要做的就是确保您为应用程序池帐户所需的bat文件授予读取+执行权限。您还需要对蝙蝠需要读取/写入的任何文件/文件夹具有适当的权限。
您不需要更改应用中的任何内容来解决此问题,除非您希望IIS应用程序伪装成实际位于网站的用户(只有在您使用某种形式的身份验证时才能正常工作)。 )无论如何,这通常是一个坏主意 - 所以最好只调整权限。
作为一般经验法则,在Web服务器上工作时,您希望将权限/执行级别保持在尽可能低/限制范围内。