c# - 程序集、Web.config 和 App.Config——构建故障转移逻辑

标签 c# asp.net web-config app-config

如果程序集 (.dll) 找不到 web.config 文件,我该如何正确设计故障转移逻辑?

背景:我已经将我们的网站代码很好地模块化为两个不同的 .dll。为了简单起见,我们称它们为:

  • 网站.dll
  • 通用引擎.dll

网站代码和 .aspx/.ascx 文件调用通用引擎库来处理所有数据层内容。对于连接字符串,commonengine 反过来不查看 app.config,而是查看网站的 web.config 文件(这是我自己的偏好——我更喜欢将我们的生产常量全部放在一个地方)。网站代码偶尔(很少)需要访问该 web.config 文件中的内容。到目前为止一切都很好(即使不完全纯净)。

麻烦来了。我写了第三个模块。它是一个 Windows 服务(具体来说,它是一个 POP3 检查器/处理器——处理邮箱请求并将 commonengine.dll 用于某些数据层内容)。

问题是 Windows 服务调用 commonengine.dll,而 commonengine.dll 无法在任何地方找到 web.config,因为毕竟它是一个 Windows 服务 (.exe),并不存在于网站目录中。

当找不到 web.config 文件时,使用 app.config 的正确测试/逻辑是什么?任何 ASP.NET 配置专家都可以在这里给我一些指导吗?非常感谢。

最佳答案

我从未明确读取 Web.config,我使用 System.Configuration 类来读取它(例如 System.Configuration.ConfigurationStrings["conn name"])。它将自动转到 ASP.NET 应用程序中的 Web.config 和 EXE 中的 app.config。

当然,您仍然必须考虑到配置部分可能丢失的事实。

关于c# - 程序集、Web.config 和 App.Config——构建故障转移逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2345697/

相关文章:

c# - WPF:具有多个数据模板的 TabControl

jquery 选择器不适用于加载了 asp :UpdatePanel 的控件

asp.net - Elmah:在 IIS7 下未调用 ErrorLog_Filtering 事件处理程序

c# - 扩展方法不会在 Razor 中显示

c# - Azure Bot Framework - 无法访问的 QnA Maker 服务

c# - 异步 TCP 读取期间的 Stackoverflow

c# - 在 AppDomain 已加载到 ASP.NET 中时替换 DLL

asp.net - 是否可以有不止调试和发布的 web.config 版本?

c# - 按 Android 上的后退按钮关闭/隐藏键盘正在清除我的输入字段 Unity

asp.net - 客户端回调和 Ajax 页面方法之间的区别 - ASP.NET