假设在本地IIS服务器上部署了一个webapp。当我需要删除/取消部署它时,我可以转到IIS管理器,右键单击该应用程序,然后选择“删除应用程序和内容” - et voila。但是,我需要从命令行做同样的事情 - 怎么样?可以假设应用程序的名称是已知的。
也许这可以通过MSDeploy以某种方式完成?
答案 0 :(得分:14)
这是做了什么:
"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy" -verb:delete -dest:apphostconfig="Default Web Site/<webapp_name>"
答案 1 :(得分:13)
如果您只想从IIS中的网站删除该应用程序而不实际删除文件(如msdeploy
那样),或者如果您没有安装WebDeploy-extension,则可以使用以下命令:
C:\Windows\System32\inetsrv\appcmd.exe delete app "Default Web Site/MyAppName"
答案 2 :(得分:5)
我知道问题是“命令行”,但您可以使用PowerShell和IIS Administration Cmdlets来执行此任务。我提供了所有功能并解释了如何自动执行此on my blog的过程。此外,您可以通过调用msdeploy,appcmd,IIsVdir.vbs等轻松交换IIS管理Cmdlet调用。
对于您的具体问题,此PowerShell代码应该可以解决问题:
$block = {
Import-Module WebAdministration
$website = "YourWebsiteName"
$applicationName = "PathUnderWebsite\ToYourApplication"
$fullPath = Join-Path $website $applicationName
Write-Host "Checking if we need to remove '$fullPath'..."
if (Get-WebApplication -Site "$website" -Name "$applicationName")
{
Write-Host "Removing '$fullPath'..."
Remove-WebApplication -Site "$website" -Name "$applicationName"
}
Write-Host "Deleting the directory '$fullPath'..."
Remove-Item -Path "IIS:\Sites\$fullPath" -Recurse -Force
}
$session = New-PSSession -ComputerName "Your.WebServer.HostName"
Invoke-Command -Session $session -ScriptBlock $block
Remove-PSSession -Session $session
答案 3 :(得分:2)
iisweb /删除网站[/ s计算机[/ u [域名]用户/密码]]