Merge pull request #1100 from bgeihsgt/win_iis_absent_fix
Fix #1099: Only populate site result when it is there
This commit is contained in:
commit
679e9fc7b4
1 changed files with 16 additions and 10 deletions
|
@ -102,8 +102,8 @@ Try {
|
|||
If ($bind_hostname) {
|
||||
$site_parameters.HostHeader = $bind_hostname
|
||||
}
|
||||
|
||||
# Fix for error "New-Item : Index was outside the bounds of the array."
|
||||
|
||||
# Fix for error "New-Item : Index was outside the bounds of the array."
|
||||
# This is a bug in the New-WebSite commandlet. Apparently there must be at least one site configured in IIS otherwise New-WebSite crashes.
|
||||
# For more details, see http://stackoverflow.com/questions/3573889/ps-c-new-website-blah-throws-index-was-outside-the-bounds-of-the-array
|
||||
$sites_list = get-childitem -Path IIS:\sites
|
||||
|
@ -171,15 +171,21 @@ Catch
|
|||
Fail-Json (New-Object psobject) $_.Exception.Message
|
||||
}
|
||||
|
||||
$site = Get-Website | Where { $_.Name -eq $name }
|
||||
$result.site = New-Object psobject @{
|
||||
Name = $site.Name
|
||||
ID = $site.ID
|
||||
State = $site.State
|
||||
PhysicalPath = $site.PhysicalPath
|
||||
ApplicationPool = $site.applicationPool
|
||||
Bindings = @($site.Bindings.Collection | ForEach-Object { $_.BindingInformation })
|
||||
if ($state -ne 'absent')
|
||||
{
|
||||
$site = Get-Website | Where { $_.Name -eq $name }
|
||||
}
|
||||
|
||||
if ($site)
|
||||
{
|
||||
$result.site = New-Object psobject @{
|
||||
Name = $site.Name
|
||||
ID = $site.ID
|
||||
State = $site.State
|
||||
PhysicalPath = $site.PhysicalPath
|
||||
ApplicationPool = $site.applicationPool
|
||||
Bindings = @($site.Bindings.Collection | ForEach-Object { $_.BindingInformation })
|
||||
}
|
||||
}
|
||||
|
||||
Exit-Json $result
|
||||
|
|
Loading…
Reference in a new issue