C# 如何从.NET类中以编程方式访问服务器级IIS连接设置? 背景 我们正在使用基于.NET的报告工具 报告工具使用了一个设置文件,在不同的环境之间进行更新很麻烦(不进行转换等) 报告工具允许我们编写在特定时间运行的.NET插件,以便我可以动态修改设置文件 我们可以访问IIS,并可以在该级别添加设置/连接字符串 目标

C# 如何从.NET类中以编程方式访问服务器级IIS连接设置? 背景 我们正在使用基于.NET的报告工具 报告工具使用了一个设置文件,在不同的环境之间进行更新很麻烦(不进行转换等) 报告工具允许我们编写在特定时间运行的.NET插件,以便我可以动态修改设置文件 我们可以访问IIS,并可以在该级别添加设置/连接字符串 目标,c#,.net,iis,iis-7,connection-string,C#,.net,Iis,Iis 7,Connection String,我想: 通过将所有连接字符串和设置移动到IIS服务器级别设置来简化部署。 甚至我们的开发人员也可以在本地使用IIS,所以这对他们来说不是问题 使用我正在编写的.NET插件连接到应用程序所在的服务器,并提取连接字符串和设置文件 问题: 如何从.NET类中以编程方式访问服务器级IIS连接设置 注意事项 此应用程序不使用web.config。 编辑:虽然应用程序显然不使用web.config,但在部署应用程序时确实存在web.config,因此理论上我可以通过.NET插件访问它 这实际上

我想:

  • 通过将所有连接字符串和设置移动到IIS服务器级别设置来简化部署。
    • 甚至我们的开发人员也可以在本地使用IIS,所以这对他们来说不是问题
  • 使用我正在编写的.NET插件连接到应用程序所在的服务器,并提取连接字符串和设置文件
问题: 如何从.NET类中以编程方式访问服务器级IIS连接设置

注意事项
  • 此应用程序不使用web.config。
    • 编辑:虽然应用程序显然不使用web.config,但在部署应用程序时确实存在web.config,因此理论上我可以通过.NET插件访问它
  • 这实际上是5个不同的网站。我将以同样的方式为每个网站实现插件
  • IIS服务器仅用于此目的,因此我希望设置和配置元素在所有web应用程序中都是全局的

您可以使用内存缓存,MemoryCache类已更改为可供非ASP.NET应用程序的.NET Framework应用程序使用

这是一个很好的书面问题+1和以下内容:)为什么不实现ajax请求并从指定的Web服务器获取连接字符串列表?@Tigran,确保我理解您的建议。您是否建议在每个IIS服务器上部署一个小型web服务,并让该服务吐回某些值,然后从.NET中使用HttpClient向这些web服务发出请求?这可能是可行的,但由于此dll将始终驻留在有问题的IIS实例所在的服务器上,我希望避免所有这些。此外,我刚刚更正了我的问题--显然有一个web.config文件随应用程序一起部署,但未被使用。但是,也许我可以使用配置委派,然后像普通web.config一样从.NET访问它们?web.config文件是级联IIRC,这意味着您应该能够在默认站点级别设置一个,并且任何子应用程序都应该从默认站点级别获取设置。我们开始: