web-dev-qa-db-fra.com

Erreur "Impossible de créer un fichier" lors de l'exécution de la commande Start-Website dans Powershell

J'essaie actuellement de lancer ce 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"
}

J'utilise la commande suivante pour exécuter le script: 

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

Tout fonctionne bien, à l'exception de la dernière commande à l'intérieur de l'instruction if:

start-website "$websiteName"

Lorsque cette commande est exécutée, je reçois le message d'erreur suivant, que je n'ai pas réussi à résoudre:

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

J'ai aussi le script suivant pour supprimer le site si c'est important:

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"
}

Je le lance avec la commande suivante:

& .\UninstallWebsite.ps1 -websiteName "MyWebsite" -appPoolname "MyWebsite"
34
Jarrett Coggin

Le message d'erreur:

Site Web de démarrage: Impossible de créer un fichier lorsque ce fichier existe déjà. 

... signifie généralement que vous avez un conflit de liaisons lorsqu'un site fonctionne déjà sur la même adresse IP, le même port et, si vous les utilisez, en-tête d'hôte.

Je vérifierais les nouvelles liaisons de votre site dans IIS MMC, puis je vérifierais si quelque chose utilise exactement les mêmes liaisons.

61
Kev

Sans aucun site Web dans la configuration IIS, la même erreur s'est produite. La raison était supplémentaire, anciens enregistrements à la fin de applicationHost.config. Aucune de celles-ci n'était visible dans IIS Manager. Après avoir supprimé ces enregistrements XML, le problème a été résolu.

0
cskwg

Activez la trace d'erreur détaillée pour trouver la raison. Dans mon cas, c’était un élément mimeType qui en dupliquait un par défaut.

0
Der_Meister