程序集,Web.config和App.Config - 构建故障转移逻辑

时间:2010-02-27 00:24:38

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

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

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

  • website.dll
  • commonengine.dll

网站代码和.aspx / .ascx文件调用commonengine库以获取所有数据层内容。对于连接字符串,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配置专家都可以在这里给我一些指导吗?非常感谢。

1 个答案:

答案 0 :(得分:1)

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

当然,您仍然需要考虑配置部分可能缺失的事实。