【问题标题】:Access is denied at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)在 System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) 拒绝访问
【发布时间】:2011-09-12 22:31:30
【问题描述】:

我正在尝试上传文件并将它们转换为另一种格式,然后再将它们保存到我的网络服务器上,但出现以下错误: System.ComponentModel.Win32Exception (0x80004005):访问在 System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) 在 System.Diagnostics.Process.Start() 被拒绝

当我尝试在本地计算机的 Web 服务器 (Windows 7) 上执行此操作时没有问题,但在将我的网站部署到具有 Windows Server 2008 R2 的 Web 托管服务提供商后出现此错误。

我正在使用 ASP.NET c#。我猜这是权限问题,但我不确定如何提升任何权限。请帮忙!

【问题讨论】:

标签: c# asp.net iis-7 permissions


【解决方案1】:

如果您尝试启动目录而不是文件,也会收到此错误。

【讨论】:

    【解决方案2】:

    我怀疑您是否可以将执行程序的权限授予标准 ASPNET 用户(这也是不好的做法)。更好的选择(启动进程)是将​​应用程序池的用户更改为服务器上有权执行进程的本地用户(最好是非管理员帐户) .请注意,您启动的进程不能有任何 UI 组件,因为您不会看到它在运行。

    【讨论】:

    • 感谢您的快速回复!你能告诉我我会怎么做吗?我没有看到任何允许我在 IIS7 上更改应用程序池用户的选项。
    • 当然,technet.microsoft.com/en-us/library/cc771170%28WS.10%29.aspx 描述了它,它被称为 App Pool Identity
    • 感谢豪克曼,这行得通!当我将用户更改为 LocalSystem 或 LocalService 时,文件已成功保存。我只是不确定这在网站安全方面意味着什么,以及我是否应该使用 LocalSystem 或 LocalService。有什么建议吗?
    • 最好有一个专门的用户,不要使用 LocalSystem 或 LocalService,因为这些帐户有很多访问权限。最好的当然是根本不从您的网站生成任何进程。 :)
    • Haukman,我将身份更改为 ApplicationPoolIdentity 但这不起作用。我收到以下错误:“由于权限不足,无法读取配置文件”。当您说拥有专用用户权限时,这就是您所指的吗?我不知道我在这里错过了什么。我应该从 Windows 资源管理器中为“httpdocs”设置权限吗?感谢您的帮助!
    【解决方案3】:

    这应该可以解决您的问题

    IIS 中的更改 --> 应用程序池 --> 高级设置 -->(进程模块)加载用户配置文件更改 --> 设置为 True。

    【讨论】:

      猜你喜欢
      • 2010-09-25
      • 2012-11-02
      • 1970-01-01
      • 1970-01-01
      • 2012-05-23
      • 2017-08-19
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多