顯示具有 Web Deploy 標籤的文章。 顯示所有文章
顯示具有 Web Deploy 標籤的文章。 顯示所有文章

2017年4月2日 星期日

使用Web.config轉換語法進行差異化部署

這篇將延續上篇Visual Studio 單鍵發行,說明使用單鍵發行功能,在實務上要如何因應不同環境(如本機正式、測試與開發環境),進行Web.config檔的差異化部署,例如資料庫連線字串或其他參數在不同環境下,其內容值也會不同。

一、本機環境

這節將說明在本機環境進行開發與測試。

⬛編輯Web.config檔,在configuration節點底下,新增下列參數設定。
<configuration>
  <appSettings>
    <add key="ServerName" value="localServer"/>
    <add key="API" value="http://localhost"/>
  </appSettings>
  <connectionStrings>
    <add name="DB" connectionString="Data Source=.;Initial Catalog=Northwind;Persist Security Info=True;User ID=userName;Password=password" providerName="System.Data.SqlClient" />
  </connectionStrings>
    <system.web>
      <compilation debug="true" targetFramework="4.0" />
    </system.web>
</configuration>

⬛編輯Default.aspx.cs程式檔,在Page_Load事件中,新增下列程式碼,主要目的是要把Web.config檔中的參數設定顯示於頁面上。
protected void Page_Load(object sender, EventArgs e)
{
    Response.Write("ServerName=" + System.Configuration.ConfigurationManager.AppSettings["ServerName"].ToString() + "<BR/>");
    Response.Write("API=" + System.Configuration.ConfigurationManager.AppSettings["API"].ToString() + "<BR/>");
    Response.Write("DB=" + System.Configuration.ConfigurationManager.ConnectionStrings["DB"].ToString() + "<BR/>");
}

⬛最後按下[開始偵錯 ]執行程式,確認網頁程式有將本機環境所使用的參數檔內容,成功的顯示出來。


二、正式環境

這節將延續第一節本機環境結果,說明在本機開發作業完成後,如何進行正式環境部署。

⬛編輯Web.Release.config檔,在configuration節點底下,新增下列參數設定。

  <appSettings>
    <add key="ServerName" value="ReleaseServer" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
    <add key="API" value="http://10.10.10.51" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
  </appSettings>
  <connectionStrings>
    <add name="DB" connectionString="Data Source=ReleaseHostName;Initial Catalog=Northwind;Persist Security Info=True;User ID=userName;Password=password" providerName="System.Data.SqlClient"
         xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
  </connectionStrings>
透過Web.config 轉換語法可以因應不同環境的需要,進行差異化部署。xdt:Locator:Locator 屬性指定您想要以某種方式變更的 Web.config 項目或項目集,xdt:Transform:Transform 屬性指定您要對 Locator 屬性找到的項目做出何種處理。詳細的內容請參閱Web 應用程式專案部署的 Web.config 轉換語法

⬛滑鼠移動至方案總管的專案WebApplication1項目上點擊右鍵,於快顯選單中點選[發行]功能,開啟發行Web視窗,選擇先前新增好的設定檔Release,按下[發行]鈕。

⬛發行作業完成後會自動開啟網頁瀏覽,查看參數檔內容,已經改為正式環境所需要的內容值。

⬛最後再到正式環境路徑下驗明正身,打開Web.config檔,再次確認部署的內容值。
正式環境部署完成!

三、測試環境
⬛測試環境的部署方式,請仿照第二節正式環境來依樣畫葫蘆,就可以完成測試環境的部署。

四、開發環境
在多人開發的情形下,可能會有需要建置開發環境,這節將說明如何新增Develop設定檔來進行部署作業。

⬛ 開啟Visual Studio 開發工具>建置>組態管理員。

⬛點擊使用中的方案組態下拉選單,選擇[新增]項目。

⬛在新增方案組態視窗中,輸入名稱Develop,複製設定值來源Debug,勾選建立新專案組態,先按下[確定]鈕,然後在組態管理員視窗中再按下[關閉]。

⬛滑鼠移動至方案總管的Web.config項目上點擊右鍵,選擇[新增設定轉換]功能。

⬛此時在Web.config檔的依存檔案中,會增加一個Web.Develop.config檔

⬛編輯Web.Develop.config檔,在configuration節點底下,新增下列參數設定。
  <appSettings>
    <add key="ServerName" value="DevelopServer" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
    <add key="API" value="http://10.10.20.36" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
  </appSettings>
  <connectionStrings>
    <add name="DB" connectionString="Data Source=DevelopHostName;Initial Catalog=Northwind;Persist Security Info=True;User ID=userName;Password=password" providerName="System.Data.SqlClient"
         xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
  </connectionStrings>

⬛滑鼠移動至方案總管的專案WebApplication1項目上點擊右鍵,於快顯選單中點選[發行]功能,開啟發行Web視窗。執行功能在選取或匯入發行設定檔(下拉選單)>新增設定檔。

⬛ 在出現新增設定檔窗後,輸入設定檔名稱為Develop後按下[確定]。

⬛輸入連線參數,發行方法選擇Web Deploy(單鍵發行),伺服器輸入localhost,網站名稱輸入DemoSite/DevelopWebApp,目的地URL輸入localhost/DevelopWebApp/Default.aspx,然後按[下一個]。

⬛組態選擇Develop,然後按[下一個]。

⬛可直接按下[發行]鈕,開始進行開發環境的部署。

⬛可以在Visual Studio 開發工具的輸出視窗中,查看發行作業的歷程記錄,發行作業完成後會自動開啟網頁瀏覽,查看參數檔內容,已經改為開發環境所需要的內容值。

⬛最後再到開發環境路徑下檢查Web.config檔,再次確認部署的內容值。
開發環境部署成功!



2017年4月1日 星期六

Visual Studio 單鍵發行

還在用手動方式來部署應用程式嗎,這篇教學將帶領大家快速體驗單鍵發行功能,不用準備多台伺服器,在本機電腦就可以體驗。

一、準備作業

⬛此範例教學是在本機(localhost)執行單鍵發行,必先於控制台>所有控制台項目>程式和功能>開啟或關閉Windows功能,進行安裝IIS管理服務(Web Management Service)。

⬛這裡建議先在IIS新增站台[DemoSite],以便完成後面的設定步驟。


二、設定步驟

⬛開啟Visual Studio 開發工具,新增[ASP.NET 空白 Web 應用程式]專案,名稱與方案名稱皆預設為WebApplication1,位置可用預設或自訂。

⬛滑鼠移動至方案總管的專案WebApplication1項目上點擊右鍵,加入WebForm檔,名稱為Default.aspx(這個網頁檔會在後面的設定中用到)。

⬛滑鼠移動至方案總管的專案WebApplication1項目上點擊右鍵,於快顯選單中點選[發行]功能,開啟發行Web視窗。

⬛於發行Web視窗>選取或匯入發行設定檔(下拉選單)>新增設定檔,並在出現新增設定檔窗後,輸入設定檔名稱為Release後按下[確定],然後再按下發行Web視窗中的[下一個]按鈕。

⬛輸入連線參數,發行方法選擇Web Deploy(單鍵發行),伺服器輸入localhost,網站名稱輸入DemoSite/ReleaseWebApp,目的地URL輸入localhost/ReleaseWebApp/Default.aspx。這裡要特別說明網站名稱的部分,網站名稱可以只填入站台名稱,如:DemoSite,站台需在發行前,於IIS新增完成,若有需要,也可再上加應用程式名稱,如:ReleaseWebApp,而應用程式若不存在於指定站台底下,發行時會自動新增。
按[驗證連線]鈕,可以檢查連線參數是否正確。


⬛組態的選擇,通常若要發行部署至正式環境就選Release,測試環境就選Debug,最大差異就是在是否有定義Debug常數與最佳化程式碼,這裡選擇Release。
為快速展示單鍵發行功能,這裡暫不討論資料庫部署。

⬛按下[開始預覽]來檢視異動清單。

⬛若有不想發行的檔案,可以於異動清單中將該檔案取消勾選,確定後按下[發行]鈕,開始進行單鍵發行作業。

⬛可以在Visual Studio 開發工具的輸出視窗中,查看發行作業的歷程記錄,發行作業完成後會自動開啟網頁瀏覽。

以上的說明,可以快速的體驗單鍵發行的功能。但實務上有可能因應不同執行環境,進行不同的參數檔設定,若想再進一步了解,如何因應不同環境(如本機、正式、測試與開發環境),進行Web.config檔的差異化部署,請參考使用Web.config轉換語法進行差異化部署