簡體   English   中英

如何配置ASP.NET應用程序的環境?

[英]How to configure the environment of an ASP.NET application?

允許ASP.NET應用程序知道它運行的環境的推薦方法是什么? 我的應用程序可以在這些環境中運行

  • 在Visual Studio中進行調試
  • 自動化系統測試
  • 在臨時服務器上部署
  • 在生產服務器上部署

在每個環境中,應用程序都需要一些不同的配置。 環境之間的主要區別在於使用哪種數據庫連接設置,但也存在其他差異。

這是我嘗試過的:

  • 我嘗試在Visual Studio中使用“配置”選項。 默認情況下有兩個:Release和Debug。 我試圖用我的四個環境的標識符替換這兩個。 然后,可以使用這些配置將轉換應用於Web.config文件。 這里的問題是選擇配置是在構建時發生的,我想編譯我的應用程序,然后在Web服務器上運行之前選擇環境。 在Visual Studio內部進行調試時也不會發生Web.config轉換,因此它不會告訴應用程序它在調試環境中運行,而是沒有環境。 我在Use Visual Studio web.config轉換中找到了一個解決方法, 用於調試,但似乎效果不佳。 我必須更改項目屬性中的配置,這是一個緩慢的過程。
  • 我嘗試過使用環境變量。 這樣我可以在應用程序外部設置變量MYAPP_ENV = dev,我可以在C#中讀取它
    string env = System.Environment.GetEnvironmentVariable(“MYAPP_ENV”);
    但后來我不確定如何在Visual Studio和IIS中設置此環境變量。 我無法在機器上全局設置它,因為同一台機器需要能夠在多個環境中運行應用程序。

那么,在ASP.NET中如何推薦這樣做呢? 在Ruby on Rails中,我將使用RAILS_ENV環境變量,在PHP中,我將包含一個文件,該文件未檢入存儲庫並添加到版本控制系統的忽略列表中。

我會為每個環境分別提供web.config文件。

或者,您也可以通過添加外部配置文件來設置類似於PHP包含文件的設置。

只需將以下內容添加到您的web.config中即可。

<appSettings file="MySettings.config">

然后添加一個名為MySettings.config的新文件,其中包含其余的配置信息。

web.config文件用於環境配置。 如果您發現可視化工作室中的配置過於繁瑣,您可以將文件保留在版本控制之外,並針對每個環境進行編輯。 在<appSettings>節點中,您可以添加鍵:

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

然后,您可以通過ConfigurationManager類訪問這些值

var currentEnvironment = ConfigurationManager.AppSettings["Environment"].ToString();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM