是否有一种脚本化方式来配置失败请求跟踪(FRT)和FRT规则

时间:2018-03-29 02:41:54

标签: powershell iis iis-8

是否有一种简单的方法以脚本方式配置失败请求跟踪(FRT)和规则?

除了安装FRT作为一项功能外,我发现的大多数解决方案都是通过inetmgr控制台进行手动操作,或者是以麻烦的XML操作结束,例如:IIS/ASP.net error for failed request tracing: "a failed request trace for this content already exists"

当然后者可能是脚本化的,但由于它是IIS的一个非常成熟的特性 - 我想知道这是否已经被覆盖,所以我不需要重新发明轮子来添加/删除-FrtRules等..

1 个答案:

答案 0 :(得分:1)

我只是需要相同并看到这个未解答的问题,然后最终创建了一个函数,只是添加了状态代码和时间规则的简单用例,但您可以根据此示例进一步扩展它。 注意:这是我的初稿,但想分享

https://github.com/csharmath/iisseven/blob/master/Enable-IISTracing.ps1

如果情况发生变化,请在此处粘贴一些示例

步骤1)在网站上启用IIS失败的请求跟踪

$psPath = "IIS:\Sites\$SiteName"
Set-ItemProperty -PsPath $psPath -Name traceFailedRequestsLogging `
        -Value @{
        enabled     = $true
        directory   = "%SystemDrive%\inetpub\logs\FailedReqLogFiles"
        maxLogFiles = 100

}

步骤2)(可选)清除现有政策

$pspath = "MACHINE/WEBROOT/APPHOST/$SiteName"
Clear-WebConfiguration "/system.webServer/tracing/traceFailedRequests" -PSPath $pspath

步骤3)使用Add-WebConfigurationProperty和Set-WebConfigurationProperty逐个添加属性

Add-WebConfigurationProperty -pspath $pspath `
        -filter "system.webServer/tracing/traceFailedRequests" -name "." -value @{path = "$Path"}

Add-WebConfigurationProperty -pspath $pspath `
        -filter "system.webServer/tracing/traceFailedRequests/add[@path='$Path']/traceAreas" -name "." `
        -value @{provider = 'ASPNET'; areas = 'Infrastructure,Module,Page,AppServices'; verbosity = 'Verbose'}

Set-WebConfigurationProperty -pspath $pspath `
            -filter "system.webServer/tracing/traceFailedRequests/add[@path='$Path']/failureDefinitions" `
-name "statusCodes" -value $FailureStatusCodes