【问题标题】:How do I access the host application's web.config file from a class library/assembly?如何从类库/程序集中访问主机应用程序的 web.config 文件?
【发布时间】:2012-05-20 11:12:20
【问题描述】:

我正在创建一个将在 Web 应用程序中使用的类库。在其中一个程序集类中发生的一件事是它访问了数据库。通常,当我从服务中执行此操作时,连接字符串会从 web.config 文件中提取。对于类库,我不太确定它会如何以同样的方式工作。有什么建议吗?

现在,我尝试将正常的配置调用放入程序集中:

protected readonly string _utiConnStr =
 System.Web.Configuration.WebConfigurationManager.ConnectionStrings["UTI"].ConnectionString;

它吐了,说“对象引用未设置为对象的实例。”

【问题讨论】:

  • 我试过了,失败了。 “对象引用未设置为对象的实例。”

标签: asp.net c#-4.0 configuration


【解决方案1】:

例如,如果我想要邮件设置:

 //open the webconfig
 Configuration webConfig = WebConfigurationManager.OpenWebConfiguration(@"~/web.config");

 // Get mail settings
 mailSettings = webConfig.GetSectionGroup("system.net/mailSettings") as MailSettingsSectionGroup;

【讨论】:

  • 所以这里真正发生的事情是我可以直接在程序集中指定我想要读取的配置文件的位置?
  • 我遇到了一些映射问题。我使用 var configMgr = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(HttpRuntime.AppDomainAppVirtualPath); this._utiConnStr = configMgr.ConnectionStrings.ConnectionStrings["UTI"].ConnectionString;它仍然失败。我在管理员中运行了 VS,它运行良好。显然 IIS 将拥有适当的工作权限。
  • 听起来您需要在您的情况下进行模拟,让 IIS 用户模拟具有 db 访问权限的用户。
猜你喜欢
  • 1970-01-01
  • 2018-01-27
  • 2022-11-29
  • 1970-01-01
  • 1970-01-01
  • 2022-12-03
  • 1970-01-01
  • 1970-01-01
  • 2011-01-07
相关资源
最近更新 更多