在PowerShell中运行启动网站命令时“无法创建文件”错误(“Cannot create a f

2019-07-30 02:20发布

目前,我试图运行此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

我也有下面的脚本,如果它的事项删除网站:

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"

Answer 1:

错误信息:

启动网址:当文件已存在无法创建文件。

...通常意味着你有一个绑定冲突的地方已经存在相同的IP地址,端口上运行,如果你使用它们,主机头的站点。

我会为您在IIS MMC新网站绑定然后看看别的东西是使用完全相同的绑定。



Answer 2:

如果没有IIS配置任何网站,发生同样的错误。 原因是在的applicationHost.config年底额外的,旧的记录。 这些都不是在IIS管理器中可见。 删除这些XML记录后,问题解决了。



Answer 3:

启用详细的错误跟踪以查找原因。 就我而言,这是一个mimeType是复制一个默认的元素。



文章来源: “Cannot create a file” error when running Start-Website command in Powershell