gpt4 book ai didi

c# - 拒绝从 ASP.NET 网站启动进程

转载 作者:行者123 更新时间:2023-11-30 12:54:31 25 4
gpt4 key购买 nike

我有一个 ASP.NET MVC4 网站,我试图在该网站上的服务器上执行一个进程。代码如下:

ProcessStartInfo startInfo = new ProcessStartInfo()
{
FileName = ExeLocation,
Arguments = string.Format("\"{0}\"{1}", ScriptLocation, Arguments),
UseShellExecute = false,
RedirectStandardOutput = true,
RedirectStandardError = true,
WorkingDirectory = AppDir,
CreateNoWindow = true,
UserName = ExeUsername,
Password = ExePassword,
Domain = ExeDomain
};

using (Process process = Process.Start(startInfo))
{
using (StreamReader reader = process.StandardOutput)
{
output = reader.ReadToEnd();
}
using (StreamReader reader = process.StandardError)
{
error = reader.ReadToEnd();
}
process.WaitForExit();
if (process.ExitCode != 0)
{
throw new Exception(string.IsNullOrEmpty(output) ? error : output);
}
}

这在我的 Visual Studio 本地机器上工作正常,但是当我部署到我的服务器 (W2K12) 时,我收到以下错误:

Access is denied   
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)

我在服务器的 AdministratorsIIS_IUSRS 组中都有 ExeUsername 引用的帐户。

应用程序池以不同的帐户运行(因此需要分配一个特定的帐户来运行该进程),该帐户也是服务器上管理员和 IIS_IUSRS 的成员。

当我登录到服务器并以 ExeUsername 身份运行命令提示符时,我能够执行该进程,因此问题一定与从 IIS 执行有关。

还有什么可能阻止此访问?

最佳答案

  1. 右键单击应用程序池
  2. 点击高级设置
  3. 身份
  4. 自定义帐户
  5. 设置用户名和密码

如果您有域名,请小心使用 domain\username 作为用户名
还可以访问部署文件夹。

关于c# - 拒绝从 ASP.NET 网站启动进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55540509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com