簡體   English   中英

如何部署應用程序並包括IIS設置?

[英]How to deploy applications and include IIS settings?

我正在尋找一種方法,用於從DEVITGPRO部署應用程序,網站和Web服務。 我不僅指項目中包含的文件,還指IIS設置,文件/文件夾權限等。

例如,本周末我們必須將新的應用程序從ITG部署到PRO ,並且PRO AppPool被設置為運行.NET 2.0 (來自先前版本)。 我們花了一些時間才意識到發生了什么,當然導致停機時間比預期的要長。

當前,我們正在使用VS 2013C# 4.xIIS 8.xTFS 2013 這里的問題是,是否可以通過“單擊”來部署應用程序。 MSBuild是否適合此任務? (我沒有使用MSBuild經驗,我在谷歌搜索時發現了一些東西,我想知道是否需要更進一步)。 TFS可以從源計算機讀取這些設置,然后以某種方式將它們復制到目標計算機上嗎? 除了可以完成此任務之外,還有其他工具嗎? 我們希望停留在Microsoft的圈子內,但是如果其他事情確實做到了,我們可能會考慮。

這可以通過PowerShell完成。 我不是PowerShell專家,所以我的語法可能不遵循良好實踐等。但是我有一個腳本,用於創建生產和測試網站並預配置幾個IIS設置。 然后,我從VS進行部署,但是您也可以擴展腳本來為您執行構建和部署。 它利用WebAdministration模塊配置IIS。

CreateIntranetSite.ps1

param([string]$SiteName, [string]$Hostname)

if($SiteName -eq '') {
Write-Error "You must provide a SiteName parameter."
}
elseif($HostName -eq ''){
Write-Error "You must provide a HostName parameter."
}
else {
Invoke-Command -ComputerName $HostName -credential DOMAIN\mason.sa -ArgumentList $SiteName -ScriptBlock {
param([string]$SiteName)
$IntranetRoot = "E:\Intranet"
$DefaultHtml = "<html><head><title>$SiteName</title></head><body><h1>$SiteName</h1><p>The $SiteName virtual application has been successfully configured.</p></body></html>"

#Import IIS tools
Import-Module "WebAdministration"

#Create Folder
New-Item $IntranetRoot\$SiteName -type Directory

#Create Default Page
Set-Content $IntranetRoot\$SiteName\index.html $DefaultHtml

#Create App Pool
New-WebAppPool $SiteName

#Create Virtual Application
New-WebApplication -Name $SiteName -Site "Intranet" -PhysicalPath $IntranetRoot\$SiteName -ApplicationPool $SiteName

#Configuration Virtual Application

#Disable AnonymousAuthentication
Set-WebConfigurationProperty -filter /system.WebServer/security/authentication/AnonymousAuthentication -name enabled -value false -location Intranet/$SiteName

#Enable Windows Authentication
Set-WebConfigurationProperty -filter /system.WebServer/security/authentication/WindowsAuthentication -name enabled -value true -location Intranet/$SiteName

}

#Launch Browser to verify
$SiteUrl=''
if($HostName -eq 'wr-test01'){
$SiteUrl='https://testnet.termana.net/'+$SiteName
}
elseif($HostName -eq 'wr-web01'){
$SiteUrl='https://intranet.termana.net/'+$SiteName
}
$ie = new-object -com InternetExplorer.Application
$ie.Visible = $true
$ie.Navigate($SiteUrl);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM