【问题标题】:Try-Catch cannot catch non-terminating error 'hresult'Try-Catch 无法捕获非终止错误“hresult”
【发布时间】:2016-11-16 07:57:29
【问题描述】:

我需要捕捉当前正在输出的跟随错误:

错误(hresult:80070425,消息:命令执行失败。) 服务目前无法接受控制消息。

来自我的 PowerShell 脚本 sn-p,它当前未捕获错误:

Try{
    appcmd start apppool /apppool.name:DefaultAppPool
}Catch{
    #$ErrorMessage = $_.Exception.Message
    #$FailedItem = $_.Exception.ItemName
    Write-Host "AppPool cannot start." -BackgroundColor Red
}

我错过了什么吗?我希望错误消息尽可能具体。如果有帮助,这是 IIS8.5。我引用了这些链接:1 | 2 | 3 | 4 | 5|

【问题讨论】:

标签: windows powershell iis try-catch iis-8


【解决方案1】:

您收到的错误消息可能来自appcmd,因此不是您可以捕获的 异常。您可以查看$global:LastExitCode 来验证通话是否成功。

但是,还有一个 WebAdministration 模块,它有一个 Start-WebAppPool cmdlet:

Import-Module WebAdministration
Start-WebAppPool -Name 'DefaultAppPool'

【讨论】:

  • 感谢您的解释。这个 cmdlet 是否能够以 appcmd 的形式返回结果?在 appcmd 上,我还尝试抛出一些自定义错误以查看是否有效。
  • 我不熟悉 appcmd 但Start-WebAppPool 也会输出错误消息并且您可以使用 try-catch 来捕获任何异常.但是该消息是否与来自 appcmd 的消息相似,我无法告诉您。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-12
  • 1970-01-01
  • 2023-01-14
  • 2022-12-21
  • 1970-01-01
  • 2013-07-18
相关资源
最近更新 更多