天青之前釋放Azure的Web角色配置設置:不同環境
使用Azure的之前,我們只想有隻讀配置文件坐在不同的環境(測試,分期和生產等)。在發佈期間,所有應用程序文件(無配置文件)都將部署到有問題的環境中。然後應用程序文件將讀取環境的配置文件以獲取連接字符串和其他特定於環境的詳細信息。我認爲這是一個非常標準的設置?天青後
釋放:
現在我們正朝着我們的web應用程序Azure的Web角色。 Web角色使用ServiceConfiguration.Cloud.cscfg
和ServiceConfiguration.Local.cscfg
文件。
當發佈到雲服務時,連接字符串需要知道。如果我們想要發佈到測試雲服務,則需要相應地編輯ServiceConfiguration.Cloud.cscfg
。如果我們想要發佈到分段或生產雲服務,則需要進一步更改ServiceConfiguration.Cloud.cscfg
。
我更喜歡在部署時從連接字符串中抽象開發者AWAY。這可以防止指向錯誤環境的錯誤(這可能會產生巨大的影響)。如何才能做到這一點?
我知道這些配置設置可以在Azure管理門戶中進行更改,但將此步驟納入發佈過程意味着開發人員需要訪問管理門戶,這不是理想的情況,因爲仍然有誤差(加上對管理門戶的「開放」訪問)。
更新:
我發現,您可以通過添加更多的(和重命名)管理您的服務配置文件:通過選擇正確的雲服務
然後(黑色)和正確的服務配置(紅色箭頭),開發人員不需要知道配置的詳細信息:
還有一個開發人員部署到雲服務時,選擇了錯誤的服務配置的問題(但也許這可以自動進入一個腳本來防止這種情況?)
我主要IRK是環境類型(藍色箭頭)。現在這對我來說毫無用處。
我得去核實一下,但我認爲這只是讓你選擇的配置,而不是服務定義。因此,如果您需要不同的端點(http與https),不同的Vm大小或環境之間的其他大小,您可能會遇到問題。我的回答方面的解決方案就是這樣做的。 –
@Eoin:哦,是的,關於服務定義的好處。這將是一個問題。最後一個問題:你是否能夠在沒有「部署包」的情況下版本控制你的代碼。直接從Visual Studio發佈是有點可怕的,因爲如果代碼已經改變,您將無法確定。 – davenewza
那麼在我們的例子中,我們的源代碼是否存儲在我們用於源代碼控制的GitHub上,因此我們有自己的流程來實現分支,鎖定發佈內容,然後繼續在Master上進行開發。當開始製作發行版時,我們只需從我們簽署的分支部署。 –