Подтвердить что ты не робот

Ошибка "Невозможно создать файл" при запуске команды Start-Website в Powershell

В настоящее время я пытаюсь запустить эту powershell script:

Param (
    $websiteName,
    $physicalPath
)

import-module WebAdministration
$website = get-website | where-object { $_.name -eq "$websiteName" }
if($website -eq $null){
    New-webapppool -Name "$websiteName"
    Set-WebConfiguration -filter "/system.applicationHost/applicationPools/add[@name='$websiteName']" -PSPath IIS:\ -value (@{managedRuntimeVersion="v4.0"})
    New-website -Name "$websiteName" -PhysicalPath "$physicalPath" -ApplicationPool "$websiteName"
    start-website "$websiteName"
}

Я использую следующую команду для запуска script:

& .\InstallWebsite.ps1 -websiteName "MyWebsite" -physicalPath "C:\TEST\MyWebsite"

Все работает отлично, за исключением последней команды внутри оператора if:

start-website "$websiteName"

Когда эта команда запускается, я получаю следующую ошибку, которую я не смог успешно устранить:

Start-Website : Cannot create a file when that file already exists. (Exception from HRESULT: 0x800700B7)
At line:1 char:14
+ start-website <<<<  "MyWebsite"
    + CategoryInfo          : InvalidOperation: (:) [Start-Website], COMException
    + FullyQualifiedErrorId : InvalidOperation,Microsoft.IIs.PowerShell.Provider.StartWebsiteCommand

У меня также есть следующий script, чтобы удалить веб-сайт, если это имеет значение:

Param (
    $websiteName,
    $appPoolName
)

import-module WebAdministration
$website = get-website | where-object { $_.name -eq "$websiteName" }
if($website -ne $null){
    remove-website -Name "$websiteName"
    remove-webapppool -Name "$websiteName"
}

Я запускаю его со следующей командой:

& .\UninstallWebsite.ps1 -websiteName "MyWebsite" -appPoolname "MyWebsite"
4b9b3361

Ответ 1

Сообщение об ошибке:

Start-Website: не удается создать файл, если этот файл уже существует.

... обычно означает, что у вас есть конфликт привязок, где уже есть сайт, работающий на том же IP-адресе, порту, и если вы используете их, заголовок узла.

Я бы проверил ваши новые привязки сайтов в MMC IIS, затем выясню, использует ли что-то другое точно те же привязки.

Ответ 2

Без каких-либо веб-сайтов в конфигурации IIS произошла та же ошибка. Причиной были дополнительные, старые записи в конце applicationHost.config. Ничего из этого не было видно в диспетчере IIS. После удаления этих записей XML проблема была решена.

Ответ 3

Включите подробную трассировку ошибок, чтобы найти причину. В моем случае это был элемент mimeType который дублировал элемент по умолчанию.