【问题标题】:IIS LocalSystem only will run my exeIIS LocalSystem 只会运行我的 exe
【发布时间】:2015-01-05 12:54:28
【问题描述】:

WindowsServer 2012 上的 IIS,ASP.NET MVC

将 IIS 8.5 站点作为 LocalSystem 运行是非常糟糕的,但这是我可以让这个 exe 运行的唯一方法。我需要能够让网站运行这个:

                var pdfProcess = new Process();
                pdfProcess.StartInfo.FileName =  SomeExeInProgramFiles;
                pdfProcess.StartInfo.Arguments = stuff;
                pdfProcess.StartInfo.WorkingDirectory = docPath; //!!!!This is really important!!!!!
                pdfProcess.Start();

运行 windows 2012,如何让我的 AppPoolIdentity 站点从 Program Files 运行上述 exe(仅)?

我已授予对包含 exe 到 IIS APPPOOL\my 池名称的文件夹的完全控制权作为测试,但它仍然无法运行。仅当我将应用程序池设置为在 LocalSystem 下运行(yicks)

注意:EXE 是需要运行才能执行任务的工具。我们别无选择,只能根据网站的要求运行它。我们没有编写或访问该 exe。

【问题讨论】:

  • 请扩展“不会运行”。究竟是什么症状(包括错误消息)。也许您可以使用进程监视器technet.microsoft.com/en-au/sysinternals/bb896645.aspx 来识别您需要的安全性。
  • 运行进程监视器提示没有错误,调用中的exe也没有返回错误。它只是没有做任何事情。任务管理器也不显示exe。只有当我切换到 LcoalSystem 时,exe 才会运行并出现在任务管理器中。
  • 你检查过windows事件日志和IIS日志吗?
  • IIS 或 EventVwr 中没有任何内容。当 exe 被调用时,它就会蒸发掉。

标签: c# asp.net iis asp.net-mvc-5


【解决方案1】:

尝试在Application PoolsAdvanced Settings中设置Load User Profile = True

那我觉得你应该可以使用ApplictionPoolIdentity来执行进程,这样就可以避免使用LocalSystem账号了。

【讨论】:

  • 默认情况下是这样。如果为 false,则站点无法运行,因为它无法读取注册表 :(
  • 好的。但是,如果在尝试启动该过程时出现一些安全问题,您应该得到一个例外。我会尝试将 Visual Studion 调试器附加到 IIS 进程并仔细查看该异常,这可能会给您一些线索。
  • 您还研究过模拟吗? msdn.microsoft.com/en-us/library/xh507fc5(v=vs.100).aspx。我记得一个类似的案例,当我需要我的 app.pool 进程来启动另一个进程时,我最终不得不创建一个具有低权限的本地用户,我将其用作 app.pool 的身份。它可能比您当前的解决方案更好 - 将其作为 LocalSystem 运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多