Web应用程序中的连接字符串为空

时间:2016-02-19 19:24:53

标签: .net asp.net-mvc web-config app-config

我有一个asp.net mvc web应用程序来在视图中显示一个表。

我还有一个数据访问项目(它是一个类库,这个项目的dll将被放入上面的MVC项目并访问其中的数据)。

我的网络应用程序没有进行数据访问。类库接受它。它包含app.config中的连接字符串,实体框架数据上下文也在库中。现在该库在控制台应用程序中运行良好。但它在Web应用程序中失败,因为连接字符串为空。

基本上在类库中,可以获得连接字符串:

 public class EndpointManagement : IEndpointManagement
 {
    public string GetConnectionString(MyDataContext context)
    {
       return ConfigurationManager.AppSettings["connectionString"];
    }
 }

不确定如何在网络应用程序中处理它????

2 个答案:

答案 0 :(得分:1)

将连接字符串放在web.config中。

答案 1 :(得分:0)

我发现这很多 - 一个类库,需要来自主机应用程序的web.config或app.config的<appSetting>或连接字符串。

这是有问题的,因为对连接字符串的依赖是在类库中“隐藏”的。有人引用了库,它以null引用异常失败,找到原因的唯一方法是查看库的源代码。它就是 - 它期待<appSettings>中的值。

最好避免在我们的类中的任何地方直接依赖app.config。但如果它无法帮助,我建议至少抛出一个非常明确的异常 - “类Xyz需要连接字符串......”并指定它在哪里寻找该连接字符串。至少消费者不必猜测和阅读额外的源代码。