2011-12-01 22 views
15

creé una función para crear un sitio en IIS, pero yo "m corriendo en un error de bizzareNew-Item IIS:. Sites nombreDeSitio - Índice fuera de los límites de la matriz

Aquí está la url I han estado utilizando como referencia:

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

New-Item: Índice fuera de los límites de la matriz

en la línea:. 1 Char: 9 + New-Item < < < < 'IIS: \ Sites \ SiteName' -physicalPath "$ sitePath" -bindings @ {protocol = "$ protocol"; bindingInformation = "$ fullBindings"} + CategoryInfo: NotSpecified: (:) [New-Item], IndexOutOfRangeException + FullyQualifiedErrorId: System.IndexOutOfRangeException, Microsoft.PowerShell.Commands.NewItemCommand

Aquí está el bloque de código que llama a la función:

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

Resulta que si elimina todos los sitios web y grupos de aplicaciones en IIS, siempre se lanza la excepción "Índice fuera de rango". Tengo la sensación de que está intentando generar una identificación del sitio y no puede encontrar la siguiente en la lista. Este artículo me ayudó a resolver el problema. http://forums.iis.net/t/1159761.aspx –

+4

Debe incluir ese comentario en una respuesta real para que sea más fácil de encontrar para otras personas. – zdan

Respuesta

26

resulta que si elimina todos los sitios web en IIS, el "índice fuera de rango "siempre se lanza una excepción. Tengo la sensación de que está intentando generar una identificación del sitio y no puede encontrar la siguiente en la lista. Este artículo me ayudó a resolver el problema. http://forums.iis.net/t/1159761.aspx

+0

¡Funciona! Gracias – 6opuc

Cuestiones relacionadas