[英]Why can I not find an AppSetting in my Web.Config with WebConfigurationManager?
我的解決方案中有2個項目。 一個是MVC Web應用程序,另一個是帶有Web服務的空網站
昨天,我通過在Web Service項目上單擊鼠標右鍵來添加設置,然后轉到properties =>手動添加設置。
這將創建一個設置文件,並將設置添加到Web.Config。
今天,我手動修改了Web.config文件(我不確定這是原因),但是由於某些原因,以下代碼無法使我的設置脫離Web.Config:
string connstring = WebConfigurationManager.AppSettings["someString"];
它只是返回null
設置名稱正確。 MVC項目也以相同的方式添加了設置,在那里我可以毫無問題地獲得所有設置。
我嘗試過的事情:
我注意到的另一件奇怪的事情是:
當我在立即窗口=>中鍵入“ 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(但由於我的解決方案中不存在上面的連接字符串,所以在我的任何項目中都沒有一個)
謝謝你的提示!
額外信息,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>
由於您在web.config中使用的是applicationSettings
而不是appSettings
,因此您需要通過Properties.Settings.Default.someString
訪問設置
如果要使用string connstring = WebConfigurationManager.AppSettings["someString"];
您必須在web.config的appSettings
部分中添加設置。
編輯:
如果您真正想要的是放置連接字符串的位置,則應遵循BilginAksoy的回答,並使用web.config的connectionStrings
部分。
如果您使用.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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.