È possibile utilizzare il comando PowerShell (e, g, New-WebSite) per creare un sito Web e impostare site preloadEnabled = "true"?IIS7.5 PowerShell preloadEnabled
risposta
Ho cercato anche questo, ma non ho trovato nulla in WebAdministration per impostare questa opzione. Presumibilmente l'approccio sarebbe quello di chiamare New-ItemProperty sulla WebApplication corretta. Sfortunatamente, non sono riuscito a ottenere l'applicazione "predefinita" per un determinato sito Web o a impostare questa proprietà su di esso. Sembra che il modulo WebAdministration (che abilita i cmdlet come New-WebSite) sia stato scritto pensando alle versioni precedenti di IIS e sicuramente prima del modulo di inizializzazione dell'applicazione.
Questa è una soluzione alternativa che impone l'impostazione di queste proprietà modificando il file application.host.config sottostante. Questa è una versione leggermente semplificata di uno script che stiamo usando ora. Avrai bisogno di eseguire questo script come amministratore.
# Copy applicationHost.config to the temp directory,
# Edit the file using xml parsing,
# copy the file back, updating the original
$file = "applicationhost.config"
$source = Join-Path "$env:windir" "\system32\inetsrv\config\$file"
$temp = Join-Path "$env:temp" "$([Guid]::NewGuid().ToString())"
$tempFile = Join-Path "$temp" "$file"
#update all applications in websites whose name matches this search term
$search = "website name to search for"
#copy applicationHost.config to temp directory for edits
#assignments to $null simply silence output
$null = New-Item -itemType Directory -path $temp
$null = Copy-Item "$source" "$temp"
# Load the config file for edits
[Xml]$xml = Get-Content $tempFile
# find sites matching the $search string, enable preload on all applications therein
$applications = $xml.SelectNodes("//sites/site[contains(@name, `"$search`")]/application")
$applications | % {
$_.SetAttribute("preloadEnabled", "true")
}
#save the updated xml
$xml.Save("$tempFile.warmed")
#overwrite the source with updated xml
Copy-Item "$tempfile.warmed" "$source"
#cleanup temp directory
Remove-Item -recurse $temp
V'è infatti un modo per fare questo (ammesso che abbiate una singola applicazione a/che si desidera impostare per e si conosce il nome del sito):
[System.Reflection.Assembly]::LoadFrom("C:\windows\system32\inetsrv\Microsoft.Web.Administration.dll")
$serverManager = (New-Object Microsoft.Web.Administration.ServerManager)
$serverManager.Sites["YOUR_SITE_NAME"].Applications["/"].SetAttributeValue("preloadEnabled", $true)
$serverManager.CommitChanges()
Questo dovrebbe fare il trucco È possibile utilizzare get-itemproperty
per verificare che funzioni. Mi ci è voluto un po 'per capire dove trovare preloadEnabled
all'interno di PowerShell ma se instradi il percorso del sito a get-member
, puoi procedere da lì.
import-module webadministration
set-itemproperty IIS:\Sites\SiteName -name applicationDefaults.preloadEnabled -value True
Funziona perfettamente, importante qui da ricordare è: preloadEnabled è case-sensitive. Inoltre, ho usato ([System.Convert] :: ToBoolean ("True")) invece di $ true. – sebastiaan
Avevo anche bisogno di scrivere "applicationDefaults" con il caso corretto per farlo funzionare. Altrimenti funziona bene. –
Questa è la risposta. Il trucco sta aggiungendo "applicationDefaults." prima di "preloadEnabled" –
Questo è un po 'tardi, ma questo aiuterà gli altri ... Questo ha funzionato per me ed è stato un po' meno prolisso. La differenza chiave è che ho tolto ApplicationDefaults perché io pongo la domanda, escludono i valori predefiniti qui:
Set-ItemProperty IIS:\Sites\<siteName>\<applicationName> -name preloadEnabled -value True
DOVE: forze Sito Web uguale predefinito potenza pari MyApplication
$w = New-Item "IIS:\Sites\AAA" -type site –physicalPath "C:\W" -bindings $binding
$w.**Collection[0].preloadEnabled = $true**
$w | Set-Item
- 1. PHP flush stopped flushing in IIS7.5
- 2. Come abilitare ASP classic in IIS7.5
- 3. Impossibile mostrare errori con PHP in IIS7.5
- 4. HttpElemento di compressione in web.config non letto in IIS7.5
- 5. Come reindirizzare HTTP a HTTPS nell'applicazione MVC (IIS7.5)
- 6. file di immagine senza estensione non visibile in IIS7.5
- 7. Chiamata Powershell Script PowerShell
- 8. emacs powershell versus powershell-mode
- 9. Implementare PowerShell PSProvider * in * PowerShell
- 10. Attività di avvio di Appcmd di Azure, impostazione preloadEnabled per TUTTI i siti
- 11. Percorso cartella del file PowerShell in PowerShell
- 12. powershell csv
- 13. PowerShell ParameterBindingException
- 14. Attributi Powershell?
- 15. in PowerShell?
- 16. Powershell "join"
- 17. Come aprire la finestra della console PowerShell da Powershell
- 18. PowerShell - Come completare/chiudere un file zip in PowerShell
- 19. Come caricare Powershell ISE 3 con powershell v2 all'interno?
- 20. Hosting PowerShell: PowerShell vs Runspace vs RunspacePool vs Pipeline
- 21. come modificare un file nella sessione remota di PowerShell (PowerShell)
- 22. Impossibile ottenere il binding net.pipe che funziona in IIS7.5 su Windows Server 2008 R2
- 23. Applicazione MVC3 all'interno di Webforms Il routing dell'applicazione genera un errore HttpContext.SetSessionStateBehavior in IIS7.5
- 24. Application_Start() chiamato due volte in applicazione MVC 5 ospitata su IIS7.5
- 25. iisnode - IIS7.5: 405 Metodo non consentito quando si esegue la richiesta PUT
- 26. Determinare quale processo w3wp.exe appartiene a quale pool di app in Windows 7/IIS7.5?
- 27. Associare un URL da un sito Web a un altro controller Sito web con IIS7.5
- 28. In IIS7.5 quale modulo rimuove il corpo di una 400 Bad Request
- 29. Elevare gli script Powershell
- 30. Cosa significa $ _ in PowerShell?
Questo è l'unico approccio che ha funzionato per me quando si imposta l'attributo preloadEnabled dell'applicazione "predefinita" di un sito Web specifico (percorso = "/"). Set-ItemProperty non sembra in grado di impostare l'attributo preloadEnabled per l'applicazione root. L'ho testato con successo su due piattaforme: Windows 7 SP1 64-bit con IIS 7.5 e il modulo di inizializzazione dell'applicazione installato e Windows Server 2012 R2 64-bit con IIS 8.5. In entrambi gli ambienti è installato Windows Management Framework 5.0 RTM (ovvero Powershell 5.0) per le rispettive piattaforme. – Wade