Dot-Net

你是如何使用 Machine.config 的,還是你?

  • November 20, 2016

對於 ASP.Net 應用程序部署,您將什麼類型的資訊(如果有)儲存在 machine.config 中?

如果您不使用它,您將如何管理可能因每個環境而更改的特定於環境的配置設置?

我正在尋找一些“最佳做法”以及每種做法的好處/缺陷。我們將在兩個月內將一個全新的應用程序部署到生產環境中,而我在這些類型的決策中擁有一定的自由度。我想確保我以盡可能最好的方式處理事情,並試圖避免以後在自己的腳下開槍。

僅供參考,我們目前僅將它(machine.config)用於數據庫連接資訊,並將所有其他可能更改的變數儲存在數據庫的配置表中。

我們正在考慮使用 machine.config 為環境添加一個密鑰,然後在 web.config 中設置一個部分,該部分對所有環境都完全相同。這樣我們就可以進行“真正的”XCopy 部署。

例如,在每台電腦(本地開發工作站、階段伺服器、建構伺服器、生產伺服器)的 machine.config 中,我們將添加以下內容:

<appSettings>
   <add key="Environment" value="Staging"/>
</appSettings>

然後,任何特定於環境的配置元素都會附加環境,如下所示:

<connectionStrings>
   <add name="Customers.Staging" provider="..." connectionString="..."/>
</connectionStrings>
<appSettings>
   <add key="NTDomain.Staging" value="test.mydomain.com"/>
</appSettings>

我們沒有解決方案的一個問題是如何在 web.config 中啟用跟踪以用於調試環境而不是實時環境。

另一個問題是實時連接字元串包括。使用者名和密碼現在在您的原始碼管理系統中。然而,這對我們來說不是問題。

引用自:https://stackoverflow.com/questions/94053