我目前的情况是,我需要在远程服务器中使用托管 ASP.net/C# API 的 IIS 执行 exe(它创建本地 .txt 文件)。我创建了一个本地用户(例如 userA)作为管理员来在远程服务器中运行 Web 服务,但未创建 .txt 文件。我已经检查并向 userA 授予必要的文件夹权限,并将该用户添加到各个组中。有趣的是,如果我在远程系统中以 userA 身份登录,exe 就会按预期执行。如果我退出则失败。服务器是带有 IIS 7 的 Win server 2008。任何帮助将不胜感激。
更新:我已经解决了这个问题,并在此处发布了答案和一些相关问题的链接。简而言之,我需要在 IIS 应用程序池中将“加载用户配置文件”设置为 true。
感谢大家的贡献
编辑:从评论中提取的代码
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");
}
更新:几周后我设法解决了这个问题。感谢大家的贡献。显然 IIS 默认情况下不加载 Windows 用户配置文件。因此,当以未登录的其他用户身份运行时,他们的 Windows 配置文件必须由 IIS 加载。在应用程序池的高级设置菜单中,有一个选项“加载 Windows 配置文件”我刚刚将其更改为 true。在 IIS 的早期版本中,默认设置为“true”。
SO 的相关问题具有相同的解决方案:
1) ASP.NET 中的安全异常和 IIS 7.5 中的“加载用户配置文件”选项 https://stackoverflow.com/questions/3068548/security-exceptions-in-asp-net-and-load-user-profile-option-in-iis-7-5
2) 在 IIS7 上运行 ASP.NET Web 应用程序项目引发异常 https://stackoverflow.com/questions/697429/running-a-asp-net-web-application-project-on-iis7-throws-exception
3) 新部署上的 System.Web.AspNetHostingPermission 异常 https://stackoverflow.com/questions/2242039/system-web-aspnethostingpermission-exception-on-new-deployment
其他
4)http://geekswithblogs.net/ProjectLawson/archive/2009/05/05/iis-system.web.aspnethostingpermission-exception-on-windows-7-rc.aspx http://geekswithblogs.net/ProjectLawson/archive/2009/05/05/iis-system.web.aspnethostingpermission-exception-on-windows-7-rc.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)