是否有一种简单的方法以脚本方式配置失败请求跟踪(FRT)和规则?
除了安装FRT作为一项功能外,我发现的大多数解决方案都是通过inetmgr
控制台进行手动操作,或者是以麻烦的XML操作结束,例如:IIS/ASP.net error for failed request tracing: "a failed request trace for this content already exists"
当然后者可能是脚本化的,但由于它是IIS的一个非常成熟的特性 - 我想知道这是否已经被覆盖,所以我不需要重新发明轮子来添加/删除-FrtRules等..
答案 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