【发布时间】:2019-07-29 16:01:03
【问题描述】:
我需要在我的网站上运行一个 .bat 文件来扫描文件并向用户生成结果。
以下是完成任务所需的步骤: 1. 用户将使用 FileUpload 工具上传一个 .zip 文件。 2. 上传的文件将作为 .bat 文件参数之一传递,以便对其进行扫描。 3. .bat 文件将扫描 .zip 文件然后生成输出(新文件将添加到共享文件夹中)。
我能够通过将文件上传到共享位置来完成第 1 步。然后我将新上传文件的路径传递给.bat文件但没有显示结果。
我检查了服务器上的权限并授予网站所需的访问权限。 另外,我在服务器上安装了最新的 java 版本,但没有运气。
代码在我的本地机器上运行良好,但每当我上传到服务器时它就无法运行。
string scanFile = @"\\...path..";
string outputLocation = @"\\...path..";
string args = "--project" +name.Text+ "--scan" +scanFile+ "--out" +outputLocation;
//The method that start the process and run .bat file
protected void startP (string path, string args)
{
Process p = new Process();
p.StartInfo.FileName = path;
p.StartInfo.Arguments= args;
p.StartInfo.UseShellExecute= false;
p.StartInfo.CreateNoWindow= true;
p.StartInfo.EnableRaisingEvents= true;
p.Start();
p.WaiteForExit();
if(p.HasExited)
{
p.Close();
// then calling other methods
}
}
你能帮我找出问题所在吗?特别是在我的本地机器上运行相同的确切代码并提供所需的输出,但当我通过服务器运行它时却没有!
注意: * .bat文件上传到服务器
【问题讨论】:
-
难道不能通过
p对象直接使用参数运行扫描工具,而不是在其周围包装一个批处理文件吗? -
能否请您帮忙写代码?
-
您可以将.bat 代码添加到您的问题中吗?我问是因为我们可以看到您的扫描仪是如何被调用的并创建一些 C# 启动代码 - 根本不需要创建批处理文件。
标签: c# asp.net batch-file file-upload