连接线和appsettings有什么区别?

Nee*_*eel 9 asp.net settings

在我所指的其中一个应用程序中,连接字符串存储在AppSettings中!直到现在我一直在<connectionstring/>元素中存储连接.但是正确的方法是什么?

所以我的问题是,web.config 之间<connectionstrings>和之间有什么区别,<appsettings>有什么特定的原因我应该或不应该在appsettings中存储连接字符串?是否有任何规则/指南可供遵循?或者这完全是开发人员的选择?

Voo*_*ild 11

connectionString和之间存在根本区别appSettings:

他们寻找不同的东西.在.NET 2.0及更高版本中:

connectionString对象是具有特定属性来设置一个XML节点; 从语义上讲,它指的是数据库连接字符串.

例如,connectionString如下所示:

<connectionStrings>
    <clear/>
    <add name="LocalSqlServer"
          connectionString="Data Source=(local);Initial Catalog=aspnetdb;Integrated Security=True"
          providerName="System.Data.SqlClient" />
  </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

你会发现它有几个不同的属性:

  • name
  • connectionString:这里面有一个特定的字符串,它需要Initial Catalog一个安全机制(在这种情况下)Integrated Security
  • providerName

appSettings它只是一个用户定义的键值对,允许您......好...设置应用程序设置.它可以是任何东西:

<appSettings>
    <add key="Mom" value="Your"/>
    <add key="UseCache" value="True"/>
    <add key="MapsKey" value="1234567890-AA"/>
    <add key="SMTPServer" value="smtp.peterkellner.net"/>
</appSettings>
Run Code Online (Sandbox Code Playgroud)

在许多情况下,将connectionString放在键值对中(如语义和编程)会很奇怪appSettings.同样,如果需要,它会使加密connectionString变得更加困难.

此博客文章中提供了更多相关信息.


Ste*_*ins 6

据我所知,除了处于"正确"的位置之外,它没有产生很大的差异 - 将连接字符串放在自己的部分中的主要优点(你确实加密了你的连接字符串......对吗?)这样您就可以加密该部分而无需加密您可能想要更改的所有设置.