【问题标题】:.NET create scheduled task on server fails with E_ACCESSDENIED.NET 在服务器上创建计划任务失败并显示 E_ACCESSDENIED
【发布时间】:2010-10-02 12:23:24
【问题描述】:

我有一个 ASP.NET 网站(在 C# 中),它接收用户数据,然后尝试创建一个 Windows 计划任务。当然,这在 DEV 机器上效果很好,但无法在服务器上运行。我试图弄清楚 ASPNET 用户(或匿名 Web 用户)需要哪些权限才能创建任务。

错误是:

Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) 
Stacktrace: 
    at MyScheduler.NewWorkItem(String TaskName, Guid& rclsid, Guid& riid, Object& obj) 
    at MyScheduler.CreateTask(String name)

我已经进行了一些搜索,建议的解决方案是使用 web.config 'impersonate' 标志来强制应用程序以具有足够权限的用户身份运行,而不是可能没有这些权限的 ASPNET 帐户.

例子:

<system.web>
    <identity impersonate="true" />
</system.web> 

很遗憾,这似乎无法解决问题。从我阅读的文档来看,这应该以匿名网络用户身份运行,但似乎用户没有足够的权限。

我更改了设置以指定恰好是计算机管理员的特定域用户。示例:

<system.web>
    <identity impersonate="true" userName="WindowsDomain\YourUserName" password="YourPassword" />
</system.web> 

这样做允许应用程序成功创建 Windows 计划任务。因此,显然,通过正确的 Windows 2003 权限集,我可以让应用程序像在开发环境中一样执行。但是,我不打算将网络或机器管理员帐户的用户凭据以纯文本形式放在 Web.config 文件中。

是否有人碰巧知道需要设置哪些权限才能使 ASPNET 帐户按预期运行?

编辑: Win32 API 被用于创建计划任务。

【问题讨论】:

  • 你用什么方法来创建定时任务? Win32、AT 命令、SCHTASKS 命令?
  • 好点!我们正在使用 Win32 API。我会将其编辑到问题中。

标签: c# .net asp.net permissions scheduled-tasks


【解决方案1】:

我已经能够解决我的特定问题,虽然不是完全。我还没有确定创建和运行计划任务所需的确切权限,但以下似乎可行:

  1. &lt;identity impersonate="true" /&gt; 添加到Web.config
  2. 将 IUSR 用户(应用程序将使用模拟运行的用户)添加到“Backup Operators”组。

这使应用程序可以访问计划任务文件夹,以便他们可以创建和运行任务。

我们还有一个问题,即任务试图以本地系统帐户运行。不幸的是,似乎只有管理员才能将本地系统帐户指定为运行用户,因此我们需要冒充管理员帐户,而不是备份操作员,以使我们的代码正常运行。

【讨论】:

    【解决方案2】:

    另一种选择是刷新服务器上的BIOS

    【讨论】:

      【解决方案3】:

      不用担心 ASPNET 用户权限,您的内部流程是否允许您创建特定于计算机的帐户并在那里提供凭据?

      【讨论】:

      • 我同意,创建一个虚拟帐户来运行任务是一种选择。但是,该虚拟帐户仍需要正确的权限。目前,我意识到将用户放在管理员组中是可行的,但需要知道帐户需要哪些特定权限。
      【解决方案4】:

      你在给事件日志写东西吗? 您的组件(我认为它托管在 IIS 中?)可能无法访问事件日志中的写入内容。

      这只是一个猜测~前段时间我也遇到过类似的问题,我是这样解决的:

      Click

      【讨论】:

        猜你喜欢
        • 2014-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-15
        • 2010-11-20
        • 1970-01-01
        • 2014-03-13
        相关资源
        最近更新 更多