我有一台在 IIS7.5 下运行多个网站的服务器。我想查看某个网站的日志文件。在 C:\inetpub\logs\LogFiles 中,我看到了多个文件夹,从 W3SVC1 到 6。
我如何找出哪个网站对应哪个文件夹?在 IIS6.0 中它会告诉你,但在 IIS7.5 中我找不到这个。
答案1
文件夹上的数字与 IIS 中每个特定站点的站点 ID 相对应。如果您进入 Internet Manager,则可以通过单击导航窗格中的站点节点来查看站点 ID。
因此,如果某个站点的 ID 为 1,则其日志文件夹名称为 W3SVC1,ID2 = W3SVC2,等等。
您还可以查看%WinDir%\System32\Inetsrv\Config\applicationHost.Config
,其中包含有关所有站点的信息。它是 XML 格式。您需要<site>
在 XML 中查找包含id
属性的节点。这是上述特定站点的站点 ID,将与日志文件夹中的数字一致。
<site name="Default Web Site" id="1">
答案2
我使用了 Powershell
Import-Module WebAdministration
$iisAppName = "MySite"
$site = Get-ItemProperty IIS:\Sites\$iisAppName
$site.id
答案3
根据 Robert Brookers 的回答,我创建了以下 powershell 脚本来获取所有站点日志文件夹的列表:
# Import the WebAdministration module
Import-Module WebAdministration
# Get all websites on the local machine
$websites = Get-WebSite
foreach ($website in $websites) {
# Get the site.id for the website
$siteId = $website.id
# Construct the W3SVC folder path for logging
$w3svcLogPath = "C:\inetpub\logs\LogFiles\W3SVC$siteId"
# Display the information
Write-Host "Website: $($website.name)"
Write-Host "Site ID: $siteId"
Write-Host "W3SVC Log Folder Path: $w3svcLogPath"
Write-Host "-------------------------"
}