2016-12-10 27 views
1

我試圖設置我的WebAPI項目以動態獲取正確的連接字符串,具體取決於項目在Azure中部署到的環境。我用下面的堆棧溢出帖子作爲排序的一個例子: Accessing SqlServer conn strings in Azure在調試本地主機時使用Environment.GetEnvironmentVariable()訪問Azure中的連接字符串

在我的代碼中,我試圖設置這個值,但是它回來了。

private static readonly string _connStr = 
    Environment.GetEnvironmentVariable("SQLAZURECONNSTR_conn"); 

而且在我的web.config中,連接字符串存儲如下:

<connectionStrings> 
    <add name="conn" connectionString="{Connection string stuff}" /> 
</connectionStrings> 

在Azure上的我的部署位置,我設置連接字符串在我的應用服務的Application Settings節。我的問題是,在本地測試時,我的連接字符串值沒有在上述代碼行_connStr中設置。

我被告知我不需要在我的web.config中添加SQLAZURECONNSTR_段,並且Environment.GetEnvironmentVariable()可以檢測環境,然後獲取正確的連接字符串。我開始懷疑這是不正確的。我錯過了什麼嗎?我會很感激任何幫助。

回答

2

您誤解了設置的工作方式。

爲了讓設置你應該使用

string connStr = ConfigurationManager.ConnectionStrings["conn"].ConnectionString; 

天青將改變到你設置有飛的設置。 另外還有,它還設置了一個名爲SQLAZURECONNSTR_conn的環境變量。但是這不會在你的本地環境中設置,除非你設置它。該設置本身不會創建它。

由於這是一個連接字符串,請務必將其設置在Web應用程序的連接字符串部分,而不是應用程序設置!

相關問題