2010-02-27 84 views
2

如果程序集(.dll)无法找到web.config文件,我该如何正确设计故障切换逻辑?程序集,Web.config和App.Config - 构建故障切换逻辑

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

  • website.dll
  • commonengine.dll于commonengine库所有数据层的东西

网站代码和的.aspx/.ascx文件调用。对于连接字符串,commonengine反过来看起来不是app.config,而是网站的web.config文件(这是我自己的偏好 - 我宁愿让我们的生产常量在一个地方)。网站代码偶尔(很少)需要访问该web.config文件中的东西。迄今为止所有的好(尽管不完全是纯粹的)。

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

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

当无法找到web.config文件时,这里使用app.config的正确测试/逻辑是什么?任何ASP.NET配置大师可以给我一些指导吗?非常感谢,如果是的话

回答

1

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

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