2011-12-01 40 views
15

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:

http://learn.iis.net/page.aspx/433/powershell-snap-in-creating-web-sites-web-applications-virtual-directories-and-application-pools/

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 
+1

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 –

+4

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

Trả lời

26

hóa ra nếu bạn xóa tất cả các trang web trong IIS, "Chỉ số Out Phạm vi "ngoại lệ 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

+0

Nó hoạt động! Cảm ơn – 6opuc

Các vấn đề liên quan