【问题标题】:clearing IISExpress cache清除 IISExpress 缓存
【发布时间】:2015-11-18 21:08:40
【问题描述】:

我正在尝试从 powershell 中清除 IISExpress 缓存。使用此代码它会抱怨列表。

"C:\Program Files (x86)\IIS Express\appcmd.exe" list site /xml | appcmd delete site /in

如何清除站点和 IIS Express 缓存?

At line:1 char:50
+ "C:\Program Files (x86)\IIS Express\appcmd.exe"  list site /xml | app ...
+                                                  ~~~~
Unexpected token 'list' in expression or statement.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnexpectedToken

【问题讨论】:

    标签: asp.net-mvc powershell iis iis-express


    【解决方案1】:

    打开 CMD prompt 并导航到 IIS express - 键入以下内容

    cd "C:\Program Files (x86)\IIS Express\"
    

    运行这个appcmd.exe list site /xml | appcmd delete site /in

    这将删除所有网站,享受吧!

    PowerShell Version 的更新感谢@sibbij

    cd "C:\Program Files (x86)\IIS Express\"
    

    运行这个./appcmd.exe list site /xml | ./appcmd delete site /in

    【讨论】:

    • 为 Powershell 复制粘贴兼容行:./appcmd.exe list site /xml | ./appcmd delete site /in
    【解决方案2】:
    1. 在调试时检查 Assembly.GetExecutingAssembly().Location 属性(watch, immediatewindow)并且在某个断点处停止
    2. 您会看到类似以下路径的位置

    %temp%\Temporary ASP.NET Files\vs...\assembly....\YOUR.dll

    1. 检查并删除路径内的所有文件夹(可能在关闭 IIS express 和 VS 后可能)

    %temp%\临时 ASP.NET 文件\

    【讨论】:

    • 我的不是这个确切的目录,但按照你的步骤我得到了它。谢谢!
    • %temp%\Temporary ASP.NET Files\vs 会将您带到 C:\Users\YOURUSERSNAME\AppData\Local\Temp\Temporary ASP.NET Files\。您不必担心用户名或驱动器号。
    • 对于 .net core 2,在 C# 的断点处停止时将其粘贴到即时窗口中:?System.Reflection.Assembly.GetExecutingAssembly().Location
    【解决方案3】:

    在 PowerShell 中,您需要使用调用运算符 (&) 将参数/参数传递给可执行文件。

    $appCmd = "C:\Program Files (x86)\IIS Express\appcmd.exe"
    
    $result = Invoke-Command -Command { & $appCmd 'list' 'sites' '/text:SITE.NAME' }
    
    for ($i = 0; $i -lt $result.length; $i++) {
        Invoke-Command -Command { & $appCmd 'delete' 'site'  $result[$i] }
    }
    

    this page 的评论不同:

    Set-Alias appcmd "$env:ProgramFiles\IIS Express\appcmd.exe"
    
    appcmd list site /text:SITE.NAME | % { appcmd delete site $_ }
    

    【讨论】:

    • 感谢您的帖子,对我来说,这只会获取第一个站点,而不是所有站点。我在 Wn10 上有 IIS express,而以前的 sn-p 曾经在 wn8.1 上工作,但它没有在 wn10 上为我返回相同的结果。有什么可以检查的吗?
    • 两个示例的行为是否相同?
    • @sodawillow 请注意,本文中“清理 IIS Express 站点”的链接已失效
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    • 2017-04-06
    • 2016-04-09
    • 2015-03-10
    • 2011-02-20
    • 2011-12-15
    • 2011-12-16
    相关资源
    最近更新 更多