如何从 .NET 类中以编程方式访问服务器级 IIS 连接设置?

Posted

技术标签:

【中文标题】如何从 .NET 类中以编程方式访问服务器级 IIS 连接设置?【英文标题】:How can I access server-level IIS connection settings programatically from within a .NET class? 【发布时间】:2013-07-07 04:54:21 【问题描述】:

背景

我们正在使用基于 .NET 的报告工具。 报告工具使用的设置文件很难在环境之间进行更新(不进行转换等) 报告工具允许我们编写 .NET 插件以在特定时间运行,这样我就可以即时修改设置文件 我们可以访问 IIS,并且可以在该级别添加设置/连接字符串

目标

我想:

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

问题

注意事项/需要考虑的事项

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

【问题讨论】:

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

您可以使用 Memory Cache,MemoryCache 类已被更改,以使其可供非 ASP.NET 应用程序的 .NET Framework 应用程序使用。

【讨论】:

以上是关于如何从 .NET 类中以编程方式访问服务器级 IIS 连接设置?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Apex 在 SalesForce 中以编程方式访问报告

如何在 c#.net 中以编程方式重新启动我的窗口服务

如何在android中以编程方式授予系统级权限?

如何在android中以编程方式启用位置访问?

如何在 .NET 中以编程方式启动 Amazon EC2 实例

如何在 Android 中以编程方式反编译 dex 文件?