C# .Net核心Blazor服务器端。在部署的服务器上执行exe和bat文件

C# .Net核心Blazor服务器端。在部署的服务器上执行exe和bat文件,c#,.net,.net-core,blazor,C#,.net,.net Core,Blazor,我正在用Blazor服务器端开发和分发它,并试图在部署的服务器上运行exe和bat文件。 使用以下代码运行时,它在本地运行得很好,但部署到服务器时,它不会运行。 部署的服务器环境正在与IIS一起分发 如果您在服务器上运行文件时有任何其他设置,请告诉我。 或者如果代码是错误的。我希望能得到帮助 =============== Function Definition =============== public void ExecuteCommand(string command) { in

我正在用Blazor服务器端开发和分发它,并试图在部署的服务器上运行exe和bat文件。 使用以下代码运行时,它在本地运行得很好,但部署到服务器时,它不会运行。 部署的服务器环境正在与IIS一起分发

如果您在服务器上运行文件时有任何其他设置,请告诉我。 或者如果代码是错误的。我希望能得到帮助

=============== Function Definition ===============
public void ExecuteCommand(string command)
{
    int exitCode;
    ProcessStartInfo processInfo;
    Process process = new Process();
    processInfo = new ProcessStartInfo("cmd.exe", "/C " + command);
    processInfo.WorkingDirectory = Path.Combine(_environment.WebRootPath, "test");
    processInfo.CreateNoWindow = true;
    processInfo.UseShellExecute = false;
    processInfo.Verb = "runas";

    processInfo.RedirectStandardError = true;
    processInfo.RedirectStandardOutput = true;

    process = Process.Start(processInfo);
    process.WaitForExit();

    string output = process.StandardOutput.ReadToEnd();
    string error = process.StandardError.ReadToEnd();
    exitCode = process.ExitCode;
    Console.WriteLine("output>>" + (String.IsNullOrEmpty(output) ? "(none)" : output));
    Console.WriteLine("error>>" + (String.IsNullOrEmpty(error) ? "(none)" : error));
    Console.WriteLine("ExitCode: " + exitCode.ToString(), "ExecuteCommand");
    process.Close();
}

=============== Execute Function ===============

ExecuteCommand(string.Format("batchTest.bat {0}", userDirPath));

当您在本地运行它时,请使用您的凭据运行它。部署时,您正在Apppool的权限下运行它。@BrianParker感谢您的回复!但我面临另一个问题。。。我像上面那样运行代码,但是cmd窗口没有出现在屏幕或任务栏上。但是,我注意到任务管理器中显示了cmd task。这也是一个权限问题吗?我注意到您设置了processInfo.CreateNoWindow=true;它不应该创建窗口。将其设置为false以创建窗口(至少用于测试)