我目前的情况是我需要在远程服务器中执行一个 exe(它创建一个本地 .txt 文件),而 IIS 托管一个 ASP.net/C# API。我创建了一个本地用户(比如 userA)作为管理员在远程服务器中运行 Web 服务,但没有创建 .txt 文件。我已经检查并授予 userA 必要的文件夹权限,并将用户添加到各个组中。有趣的是,如果我在远程系统中以 userA 身份登录,exe 会按预期执行。如果我注销,那么它会失败。服务器是带有 IIS 7 的 Win server 2008。任何帮助将不胜感激。
更新:我已经解决了这个问题,并在 SO 上发布了答案和一些相关问题的链接。简而言之,我需要在 IIS 应用程序池中设置“加载用户配置文件”为真。
感谢大家的贡献
编辑:从评论中提取的代码
Process proc = new Process();
proc.StartInfo.FileName = path;
proc.StartInfo.Arguments = exeparams;
proc.Start();
proc.WaitForExit();
stat = proc.ExitCode;
if (stat != 0)
{
throw new Functions.log("Error");
}