發布ASP.NET時web.config內容的參數化

來源:互聯網
上載者:User

微軟的MSDeploy提供了web.config transform方式,提供發布時對web.config的變換能力以應對不同模式的部署。VS2010建立ASP.NET項目的時候就預設提供了debug版和release版的web.config。詳細可以參考MSDN。

而還有一些情境是也需要在部署的時候變更web.config內容,但是需要通過外部(例如安裝程式)指定需要變換的參數。這就要用到了web.config的參數化。這部分內容似乎MSDN上沒有詳細講(或者我沒找到)。

在這裡找到了一些相關的說明(請自備翻牆工具)。 

摘要如下:

Step 1: 建立Parameters.xml,設定希望在部署階段變換的參數。

            沒找到對應的schema,手寫起來有點麻煩,好歹我這一次需要參數化的內容不多。首先給出一個參考(來自上述博文)

代碼<?xml version="1.0" encoding="utf-8" ?>
<parameters >

  <parameter name="Log Folder Location" description="Please provide a shared location where the app can write log files to" defaultValue="\\Logs\MvcApp\Logs\" tags="">
    <parameterEntry kind="XmlFile" scope="\\web.config$" match="/configuration/appSettings/add[@key='LogFolder']/@value" />
  </parameter>

  <parameter name="WCF Service1 Endpoint Address" description="Please provide the Endpoint address for Service1 that this MVC App needs to call" defaultValue="http://localhost:61938/Service1.svc" tags="">
    <parameterEntry kind="XmlFile" scope="\\web.config$" match="//system.serviceModel/client/endpoint/@address" />
  </parameter>
  
 </parameters>

 

            對parameter的各個attribute做一下說明(意譯自上述博文) 

            name - 必須屬性,不可重複。

            description - 在使用IIS Manager部署時會出現在UI

            defaultValue - 非必須

            scope - 用Regex表示該parameter對應什麼地方

            kind - 有很多種,但只需記住兩種

                 XMLFile - 使用XPath對web.config或者其他xml檔案進行變換

                 TextFile - 對非XML檔案,可以進行尋找替換。例如,可以定義@@replacementme@@以便在部署時替換

            match - 取決於kind,如果kind=XMLFile,那麼match就被定義成一個XPath,如果是TextFile,那麼match就是你預定義在被變換檔案中的一些短語例如@@replacementme@@

Step 2:打包

Step 3:使用IIS Manager或者命令列方式部署,這就不是本文要討論的內容了。 

[Update] 這裡有一篇更詳細的文檔

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.