Tôi đã tạo một hàm để tạo trang web trong IIS, nhưng tôi đang gặp lỗi bizzare.Mục mới IIS: Sites SiteName - Chỉ mục nằm ngoài giới hạn của mảng
Đây là url tôi đã được sử dụng như một tài liệu tham khảo:
New-Item: Index lại vượt ra ngoài giới hạn của mảng
Tại dòng:. 1 char: 9 + New-mục < < < < 'IIS: \ Sites \ SiteName' -physicalPath "$ sitePath" -bindings @ {protocol = "$ protocol"; bindingInformation = "$ fullBindings"} + CategoryInfo: NotSpecified: (:) [New-Item], IndexOutOfRangeException + FullyQualifiedErrorId: System.IndexOutOfRangeException, Microsoft.PowerShell.Commands.NewItemCommand
đây là khối mã đó gọi hàm:
function Create-FullSite($site, $framework, $userName, $password, $protocol, $port, $enabledProtocols)
{
#Write-Host "Prompting for path to "
$sitePath = Select-Folder
#Write-Host $sitePath
#Write-Host "Setting up app pool for "
$csServicePool = New-Item -Path iis:\AppPools\$site
#Write-Host "Configuring app pool"
Set-ItemProperty -Path IIS:\AppPools\$site -name managedRuntimeVersion -value $framework
$csServicePool.processModel.username = $userName
$csServicePool.processModel.password = $password
$csServicePool.processModel.identityType = 3
$csServicePool | set-item
#Write-Host "Creating IIS Site "
$fullBindings = ':'+$port.ToString()+':'
Write-Host $fullBindings
Write-Host $site
Write-Host $sitePath
Write-Host $protocol
New-Item IIS:\Sites\$site -physicalPath "$sitePath" -bindings @{protocol="$protocol";bindingInformation="$fullBindings"}
#Write-Host "Assigning App pool to "
Set-ItemProperty -Path IIS:\Sites\$site -name ApplicationPool -value $site
#Write-Host "setting applicationDefaults.enabledProtocols: "
Set-ItemProperty -Path IIS:\Sites\$site -name applicationDefaults.enabledProtocols -value "$enabledProtocols"
return $sitePath
}
$ServicesSiteName = 'MyNewSite'
$ServicesPort = '80'
$ServiceBindings = 'http'
$csWebServiceUserName = 'domain\someUser'
$csWebServicePassword = 'AReallyComplexPassword'
$v2Framework = 'v2.0'
$v4Framework = 'v4.0'
Create-FullSite $ServicesSiteName $v2Framework $csWebServiceUserName $csWebServicePassword $ServiceBindings $ServicesPort $ServiceBindings
Hóa ra nếu bạn xóa tất cả các trang web và nhóm ứng dụng trong IIS, ngoại lệ "Chỉ mục ngoài phạm vi" luôn bị ném. Tôi có cảm giác nó đang cố gắng tạo một id trang web và không thể tìm thấy id tiếp theo trong danh sách. Bài viết này đã giúp tôi giải quyết vấn đề. http://forums.iis.net/t/1159761.aspx –
Bạn nên gắn nhận xét đó vào câu trả lời thực tế để giúp mọi người tìm thấy dễ dàng hơn. – zdan