當你在 Visual Studio 2010 中建立一個 ASP.NET Web 應用程式專案時,預設會產生三個組態檔:Web.config、Web.Debug.config、Web.Release.config(無專案式網站無此功能)。
一般而言,開發時期就只要編輯 Web.config 的內容,等到需要部署至正式環境時,才需要編輯 Web.Release.config 的內容。至於 Web.debug.config 的內容是否要編輯,就看是否需要部署至其他的測試伺服器。
你甚至可以增加其他組態檔,例如供測試機使用的 Web.Testing.config,或者供預備機(staging server)使用的 Web.Staging.config。
欲增加其他組態檔,必須先利用 Configuration Manager 來增加組態名稱。你可以在 Solution Explorer 中的 Solution 名稱上點右鍵,再選 Configuration Manager:
寫點程式測試看看。在 Web.config 中加入連線字串的參數:
然後是 Web.Release.config:
轉換的語法暫不細究,先拿一個網頁來測試,例如:Default.aspx。在 Page.Load 事件中撰寫程式碼,將連線字串的內容秀在頁面上:
然後將此 Web 專案的 Active 組態切換成 Release,建置部署套件後,利用 One-Click Publish 將網站發行至正式環境的伺服器。瀏覽此網頁時,觀察顯示的連線字串是否跟開發時期的連線字串不同。
Web.config 的轉換語法可參考 MSDN:http://msdn.microsoft.com/zh-tw/library/dd465326.aspx
一般而言,開發時期就只要編輯 Web.config 的內容,等到需要部署至正式環境時,才需要編輯 Web.Release.config 的內容。至於 Web.debug.config 的內容是否要編輯,就看是否需要部署至其他的測試伺服器。
你甚至可以增加其他組態檔,例如供測試機使用的 Web.Testing.config,或者供預備機(staging server)使用的 Web.Staging.config。
欲增加其他組態檔,必須先利用 Configuration Manager 來增加組態名稱。你可以在 Solution Explorer 中的 Solution 名稱上點右鍵,再選 Configuration Manager:
接著按下圖的操作來為專案新增一個組態名稱:
定義好新的組態名稱後,在 Web 應用程式專案的 Web.config 項目上點右鍵,就會看到 Add Config Transforms。它會直接幫你加入新的組態檔,如下圖:
如果你發現 Add Config Transforms 是 disabled,那就表示目前定義的組態名稱都已經有對應的組態檔了,除非你再定義新的組態名稱,否則這項功能是無法使用的。
寫點程式測試看看。在 Web.config 中加入連線字串的參數:
<connectionStrings> <add name="Northwind" connectionString="sever=localhost;database=Northwind;uid=sa;"/> </connectionStrings>
然後是 Web.Release.config:
<connectionStrings> <add name="Northwind" connectionString="server=192.168.1.10;database=Northwind;uid=sa;" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> </connectionStrings>
轉換的語法暫不細究,先拿一個網頁來測試,例如:Default.aspx。在 Page.Load 事件中撰寫程式碼,將連線字串的內容秀在頁面上:
Imports System.Configuration …… Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load Response.Write("連線字串: " & ConfigurationManager.ConnectionStrings("Northwind").ConnectionString) End Sub
然後將此 Web 專案的 Active 組態切換成 Release,建置部署套件後,利用 One-Click Publish 將網站發行至正式環境的伺服器。瀏覽此網頁時,觀察顯示的連線字串是否跟開發時期的連線字串不同。
Web.config 的轉換語法可參考 MSDN:http://msdn.microsoft.com/zh-tw/library/dd465326.aspx
沒有留言: