有誰知道我該如何檢查頁面是否在生產,開發或測試.net c#中運行?在PHP中,我可以使用var_dump($ _ SERVER)來檢查,但不知何故,我不知道如何在.net c#中檢查它。無論如何檢查頁面是否在生產或開發中運行或在.net c#中測試?
我需要找出是否該頁面在生產/測試/開發運行,以顯示正確的標誌和網頁標題
有誰知道我該如何檢查頁面是否在生產,開發或測試.net c#中運行?在PHP中,我可以使用var_dump($ _ SERVER)來檢查,但不知何故,我不知道如何在.net c#中檢查它。無論如何檢查頁面是否在生產或開發中運行或在.net c#中測試?
我需要找出是否該頁面在生產/測試/開發運行,以顯示正確的標誌和網頁標題
您可以設置許多您想要的配置,默認情況下,您有調試和版本。
可以使不同的web.config文件針對不同的配置,例如,用於調試:web.debug.config
的更多信息:http://blogs.msdn.com/b/webdevtools/archive/2009/05/04/web-deployment-web-config-transformation.aspx
從代碼,你可以使用指令來測試的配置也一樣,例如:
#if DEBUG
bool isDebug = true;
#else
bool isDebug = false;
#endif
內格拉
一個可能的解決方案可能是添加構建配置爲測試,爲生產可能是Release
,Dev可能是Debug
。對於測試配置,使用precomp dirrective就像我們爲了調試一樣。
TEST
關鍵,你必須定義項目的TEST配置。
所以地方上的代碼,你將使用#if TEST.
如果你想在不同的環境中使用相同的構建,可以使用外部配置文件,但我個人更喜歡第一個解決方案,因爲你esplicitly說什麼建立結果你要。隨着配置很容易搞砸恕我直言。
一個WA y是檢查數據庫服務器的名稱。當然,這取決於服務器命名約定。因此,您可以將ConnectionString從web.config中取出,解析出DataSource並將其與您已知的生產框進行比較。
另一種方法是始終使用數據庫中的某個值來清理dev/qa框,以表明它不是生產框。
System.Environment.MachineName
這會給你的名字,所以只要你知道不同的服務器的名稱這一建議立即進行刪除工作。
不要在每個環境中連接到不同的數據庫服務器嗎?如果沒有服務器,至少數據庫本身應該是不同的,有一個配置表的標誌URL,標題文本和其他ru.time設置,並始終建立相同的二進制文件。
我們這樣做,工作得很好。只有連接字符串在app.config中更改,但我們很少重新部署配置文件。
你說的是環境嗎?如生產服務器,測試服務器和開發服務器?代碼可以構建在發行版或調試模式下。 – c0deNinja
@ c0deNinja:是的。這就是我的意思 –
沒有「prod」,「test」或「dev」的一般概念,所以沒有通用的方法來查明。 –