現在、私はこの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"
}
次のコマンドを使用してスクリプトを実行します。
& .\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
また、重要な場合にWebサイトを削除する次のスクリプトもあります。
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"
エラーメッセージ:
Start-Website:ファイルが既に存在する場合、ファイルを作成できません。
...通常、同じIPアドレス、ポート、およびそれらを使用している場合はホストヘッダーで実行されているサイトが既に存在する場合、バインディングの競合があることを意味します。
IIS MMCで新しいサイトバインディングをチェックしてから、他の何かがまったく同じバインディングを使用しているかどうかを調べます。
IIS構成にWebサイトがない場合、同じエラーが発生しました。理由は、applicationHost.configの最後に追加された古いレコードでした。これらはどれもIIS Managerに表示されませんでした。これらのXMLレコードを削除した後、問題は解決しました。
詳細なエラートレースを有効にして、理由を見つけます。私の場合、それはデフォルトの要素を複製したmimeType
要素でした。