我們發布 ASP.NET 網站的設定檔都是寫在 Web.Config 裡面
在專案中可以看到跟 Web.Config 有關的有三個檔案,分別是
通常 Web.Config
裡面會放測試用DB的連線字串,而 Web.Release.Config
會放正式DB的連線字串
當我們使用 Visual Studio 發布時,就會依 Web.Release.Config
的資料對 Web.Config
內容進行修改或替換。
然後,這裡有個經驗誤區,這個替換行為只有發布時才會執行!!!
除非你的專案有特別設定(也不怎好用的方法),否則預設專案下我們平常用 F5 偵錯、Ctrl + F5 等,ASP.NET 運行都是吃 Web.Config
裡面的設定,不管你選擇Debug組態
或Release組態
,都不會吃 Web.Debug.config
或是 Web.Release.config
的設定
不要像我一樣傻傻的,想說能組態來切換偵錯用的 DB ,卻發現資料不對 ~"~
中文的 Microsoft Docs 是用部屬來表示,就是英文的 Deployment 。一樣代表偵錯時不會替換,只有部屬時才替換。
參考資料:
https://dotblogs.com.tw/yc421206/2020/05/30/debug_mode_apply_config_transform_at_web_config
https://docs.microsoft.com/zh-tw/previous-versions/dd465326(v=vs.100)?redirectedfrom=MSDN