部署-WebSite

開始之前

除非要偵錯否則少用F5,改用Ctrl+F5

使用Web Deploy

為什麼要用Web Deploy?這樣做有什麼好處?

同一份程式碼快速的發佈到不同的機器

簡單同時維護 Debug/Release 應用程式,甚至更多

安裝 Deploy Host

IIS 安裝 Web Platform Components

在 Web Platform 搜尋 Deploy 並且安裝它

Deploy Host Server

Web.Config Transform Mode

設設三種模式

不夠可以再加

Web.config
開發專用

Web.Debug.config
測試機

Web.Release.config
正式機

發佈網站時可以決定要發佈哪一種 (Debug | Release) 模式

Web.Config 的參數,由 Transform 標籤來決定是否要替換

透過 Web.config 替換機制(Transform),可達成同時維護 Debug/Release 應用程式,捨棄手動 Remark,快速切換 Debug/Release不同的設定,減少手動調整設定檔

『測試環境』與『產品環境』應該要分開,比如測試環境不得直接操作品環境的資料庫, 以降低系統崩壞風險

常用的參數節點

appSettings

connectionStrings

範例

@Web.config

appSettings

<appSettings>
<add key="a" value="release mode" />
</appSettings>
<connectionStrings>

connectionStrings

<add name="MyDB"
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"/>
</connectionStrings>

@Web.Release.config

appSettings

<appSettings>
<add key="a" value="release mode" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
</appSettings>

connectionStrings

<connectionStrings>
<add name="MyDB"
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)" />
</connectionStrings>

Remote Debug

IntelliTrace

SQL

沒有什麼?

氣氛美好的燈光

點心、飲料

這個Conversation有什麼?

分享我所使用的佈署方式

練習