2015-04-22 111 views
1

我在我的解決方案中有2個項目。 1是一個MVC的Web應用程序 另一種是空的網站與Web Service爲什麼我無法使用WebConfigurationManager在Web.Config中找到AppSetting?

昨天我通過對Web服務項目右鍵單擊並轉到屬性=>手動添加設置添加一個設置。

這將創建一個設置文件並將設置添加到Web.Config。今天

我手動修改的Web.config文件(我不知道這是原因),但由於某些原因,下面的代碼不能讓我的設置了我的web.config中:

string connstring = WebConfigurationManager.AppSettings["someString"]; 

它只返回空

設置名稱正確。 MVC項目也有以相同的方式添加的設置,我可以在沒有任何問題的情況下獲得所有設置。

事情我已經嘗試:

  • 雙/三/四人間檢查是否設置名稱是正確
  • 我已經重新啓動Visual Studio中的管理員。
  • 我已刪除設置文件並重新創建它。 =>此自動還修改的Web.Config
  • 經過如果有System.Configuration

另一個奇怪的,我注意到一個參考以下:

當我在輸入「WebConfigurationManager」立即窗口=>它看起來有0個AppSettings在裏面。 它也表明我有2個連接字符串,但他們確實不在那裏(如果我執行Ctrl + Shift + F,沒有在解決方案中找到的位置): 這是連接字符串「WebConfigurationManager.ConnectionStrings [0]」返回:

ConnectionString: "data source=.\\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" 

我幾乎會認爲這是打開了錯誤的Web.config文件(而不是一個在我的任何項目,因爲這裏的ConnectionString上面並沒有在我的解決方案存在)

感謝任何提示!

額外的信息,web.config中的內容:

....

<applicationSettings> 
    <SomeWebServices.Properties.Settings> 
     <setting name="someString" serializeAs="String"> 
      <value>DATA SOURCE=abcdefg;USER ID=ABC;PASSWORD=abc987</value> 
     </setting> 
     <setting name="someOtherString" serializeAs="String"> 
      <value>DATA SOURCE=abcde;USER ID=ABC;PASSWORD=abc654</value> 
     </setting> 
    </SomeWebServices.Properties.Settings> 
</applicationSettings> 

回答

1

由於您使用applicationSettings而不是appSettings你的web.config則需要通過訪問您的設置Properties.Settings.Default.someString

如果你想使用string connstring = WebConfigurationManager.AppSettings["someString"];你必須在web.config的appSettings部分添加設置。

編輯:
如果你真正想要的是什麼地方把你的連接字符串,你應該遵循BilginAksoy's answer並使用你的web.config的connectionStrings一部分。

+0

如果我可以,我會起來給你更多的大拇指。感謝您的回答 !!! – user1841243

1

如果您使用.NET 3.5或更高版本,請勿使用web.config中的appsettings。而是使用web.config中的connectionStrings部分。

試試這個web.config中

<connectionStrings> 
<add name="myConnectionString" connectionString="server=localhost;database=myDb;uid=myUser;password=myPass;" /> 
</connectionStrings> 
相關問題