octopus - Error "No se puede crear un archivo" al ejecutar el comando Start-Website en Powershell
iis powershell (2)
El mensaje de error:
Start-Website: no se puede crear un archivo cuando ese archivo ya existe.
... generalmente significa que tiene un conflicto de enlaces donde ya hay un sitio ejecutándose en la misma dirección IP, el puerto y, si los está usando, el encabezado del host.
Verificaría los enlaces de tu nuevo sitio en IIS MMC y luego averiguaría si algo más está usando exactamente los mismos enlaces.
Actualmente estoy tratando de ejecutar este script powershell:
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"
}
Uso el siguiente comando para ejecutar el script:
& ./InstallWebsite.ps1 -websiteName "MyWebsite" -physicalPath "C:/TEST/MyWebsite"
Todo funciona bien, excepto por el último comando dentro de la instrucción if:
start-website "$websiteName"
Cuando se ejecuta ese comando, recibo el siguiente error, que no he podido solucionar correctamente:
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
También tengo el siguiente script para eliminar el sitio web si es importante:
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"
}
Lo ejecuto con el siguiente comando:
& ./UninstallWebsite.ps1 -websiteName "MyWebsite" -appPoolname "MyWebsite"
Sin ningún sitio web en la configuración de IIS, se produjo el mismo error. La razón fueron los registros antiguos y adicionales al final de la aplicaciónHost.config. Ninguno de estos fueron visibles en el Administrador de IIS. Después de eliminar estos registros XML, el problema fue resuelto.