【问题标题】:Delete ASP.NET Temp files using windows services使用 Windows 服务删除 ASP.NET 临时文件
【发布时间】:2017-05-11 21:27:38
【问题描述】:

我们正在尝试创建 Windows 服务,该服务将在每天凌晨 3 点运行。该服务基本上删除/删除 ASP.NET 临时文件。 我们能够找到停止/启动 IIS 和删除临时文件的命令行参数。另外,我们创建了一个简单的 windows 服务。 但是,我们有几个问题:

  1. 临时文件夹权限已重置为只读,我们需要手动更改它以删除只读权限。
  2. 根据我们的谷歌搜索,我们不确定:如何定期从 Windows 服务调用 DOS 命令。我们是否需要使用批处理文件来执行DOS命令,如果需要,那么如何做到这一点。

以下是停止/启动 iis 和删除临时文件的命令。

iisreset /停止 C:\WINDOWS\system32>del /S/Q "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temp orary ASP.NET 文件\"

iisreset /开始

谁能指导我们?我们是否需要使用窗口服务或任务计划程序来停止 iis,删除文件夹权限并删除临时文件夹。示例/说明会很有帮助。

【问题讨论】:

    标签: asp.net .net vb.net vba


    【解决方案1】:

    为此,Windows 服务有点矫枉过正。您真正需要的是一个计划任务来启动您的命令并将其设置为在有权访问本地 IIS_IUSRS 组(或任何对该文件夹具有提升权限的用户)的实例下运行。

    以 powershell 为例:

    invoke-command -scriptblock {iisreset /stop}

    Get-ChildItem -Path "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temp orary ASP.NET Files\" -Include . -Recurse | foreach { $_.Delete()}

    invoke-command -scriptblock {iisreset /start}

    设置计划任务如下: https://community.spiceworks.com/how_to/17736-run-powershell-scripts-from-task-scheduler

    并将其设置为以对该文件夹具有提升权限的用户身份运行。

    您很可能还希望在 IIS 恢复后向您的网站添加一个 powershell Web 请求,否则在您执行此操作后第一个再次访问该网站的人会延长初始加载时间。

    【讨论】:

    • 感谢您的回复。将考虑您的建议并详细研究。欣赏!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 2015-03-20
    • 2020-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多