iT邦幫忙

2022 iThome 鐵人賽

DAY 2
0
自我挑戰組

Bug仔的筆記本系列 第 2

為什麼用 F5 偵錯時,Web.Config 沒有依 Debug 組態或 Releace 組態做內容替換?

  • 分享至 

  • xImage
  •  

我們發布 ASP.NET 網站的設定檔都是寫在 Web.Config 裡面
在專案中可以看到跟 Web.Config 有關的有三個檔案,分別是

  1. Web.Config
  2. Web.Debug.config
  3. Web.Release.config
    https://ithelp.ithome.com.tw/upload/images/20220916/201204201B9YYGh67V.png

通常 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 的設定
https://ithelp.ithome.com.tw/upload/images/20220917/20120420jqsKLbZpFX.png

不要像我一樣傻傻的,想說能組態來切換偵錯用的 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


上一篇
ASP.NET 的錯誤訊息顯示設定
下一篇
網站發布時,設定 Web.Config 依組態做內容替換
系列文
Bug仔的筆記本30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言