我有两个项目在我的解决方案。1是一个MVC Web应用程序,另一个是带有Web服务的空网站
昨天,我通过右键单击Web项目添加了一个设置,然后手动转到属性=>添加设置。
这将创建一个设置文件并将设置添加到Web.Config中。
今天,我手动修改了Web.config文件(我不确定这就是原因),但是由于某些原因,下面的代码无法让我的Web.Config设置出来:
string connstring = WebConfigurationManager.AppSettings["someString"];
它只返回null。
设置名称是正确的。MVC-项目也有相同的设置添加方式,在那里我可以得到所有的设置没有任何问题。
我尝试过的事情:
我注意到的另一件奇怪的事情是:
当我在直接窗口=>中输入“=>”时,它看起来好像有0 AppSettings。它还表明我有两个连接字符串,而它们实际上并不存在(如果我执行Ctrl+Shift+F,在解决方案中找不到它们):这是连接字符串"WebConfigurationManager.ConnectionStrings“返回的:
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>
发布于 2015-04-22 01:45:58
由于在您的applicationSettings
中使用的是appSettings
而不是appSettings
,所以您需要通过Properties.Settings.Default.someString
访问您的设置
如果要使用string connstring = WebConfigurationManager.AppSettings["someString"];
,就必须在web.config的appSettings
部分中添加设置。
编辑:
如果您真正想要的是放置连接字符串的位置,那么应该遵循BilginAksoy's answer,并使用web.config的connectionStrings
部分。
发布于 2015-04-22 01:48:28
如果使用.NET 3.5或更高版本,请不要在web.config中使用应用程序设置。相反,请使用web.config中的web.config部分。
试试这个web.config
<connectionStrings>
<add name="myConnectionString" connectionString="server=localhost;database=myDb;uid=myUser;password=myPass;" />
</connectionStrings>
https://stackoverflow.com/questions/29793313
复制相似问题