可以为 iis 站点定义 connectionStrings 的所有位置是什么?

what are all the locations in which connectionStrings can be defined for an iis site?

我试图找到可以为 iis 站点定义 connectionString 的所有位置(以编写脚本来提取它们)。 我知道它可以是 web.config 的一部分。我想要一个完整的文件列表,可以在其中配置它。 在站点代码中配置它有意义吗? 还有哪些其他配置文件可以定义站点的 connectionStrings?

还有一个额外的问题 - 我如何知道在其中搜索 connectionString 的文件的顺序?

谢谢,

编辑:
附加信息 - 所有 IIS 站点都是纯 dotnet 站点。

此外,指定文件的一般位置而不是文件名也很有帮助。
例如。 - connectionStings 可以位于外部配置文件中,其位置在“%runtime install path%\config\machine.config”文件的 appSettings 元素中定义。

另一种选择是 link 到相关文档。
我的问题是我还没有找到任何结论。

据我所知,有几种方法可以在 ASP.NET 应用程序中配置连接字符串。

  1. 在代码中定义它。这是许多初学者使用的方法。因为此时他们的重点是代码学习和逻辑理解。但是有些人习惯用如果数据库是固定的,不需要修改。

    SqlConnection connection = new SqlConnection("Data Source=.\SQLEXPRESS;Initial Catalog=mytest;Integrated Security=True");
    
  2. 在web.config或App.config中定义。它的好处是在发布应用程序后很容易修改连接字符串。开发人员可以更改 web.config,无需更改代码并重新部署应用程序。

     <connectionStrings>
       <add name="mytest" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=mytest;Integrated Security=True;" providerName="System.Data.SqlClient" />  
     </connectionStrings>  
    
  3. 使用 External Configuration Files。 ConnectionString 存储在一个独立的文件中,例如 connections.config。它的好处是修改外部配置文件不会导致应用重启。

    <?xml version='1.0' encoding='utf-8'?>  
    <configuration>  
      <connectionStrings configSource="connections.config"/>  
    </configuration>
    

关于列出所有连接字符串,可以使用ConnectionStringSettingsCollection。它可以通过名称和提供商名称获得连接。

我找到了一个很好的 IIS dotnet Framework 配置文件位置的来源 - https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc754617(v=ws.10)?redirectedfrom=MSDN#inheritance

您可以定义额外的 connectionStrings

  1. 在 dotnet 代码中。
  2. 环境中
  3. 在外部配置文件中。
  4. 对于非 IIS 范围 - 例如用户范围和角色范围。

这 4 个选项不是特定于 IIS。
我不知道选项 (3) 和 (4) 在哪里定义,我不确定这个列表是否完整。但是通过结合这个列表和文档中的列表,我认为我们已经定义了 connectionStrings 的 99% 覆盖率。