Web 应用程序中的连接字符串为空
The connection string is empty in Web Application
我有一个 asp.net mvc web 应用程序可以在视图中显示 table。
我还有一个数据访问项目(是一个class库,这个项目的dll会放到上面的MVC项目中,在里面访问数据)。
我的 Web 应用程序不执行数据访问操作。 class 库接受它。它包含 app.config 中的连接字符串,并且 entity framework 数据上下文也在库中。现在该库在控制台应用程序中运行良好。但它在网络应用程序中失败,因为连接字符串为空。
基本在class库中,可以得到连接字符串:
public class EndpointManagement : IEndpointManagement
{
public string GetConnectionString(MyDataContext context)
{
return ConfigurationManager.AppSettings["connectionString"];
}
}
不确定如何在 Web 应用程序中处理它????
将连接字符串放入 web.config。
我经常看到这种情况 - class 库需要来自主机应用程序 web.config 或 app.config.[=12= 的 <appSetting>
或连接字符串]
这是有问题的,因为对连接字符串的依赖是 "hidden" 在 class 库中。有人引用该库,它失败并出现空引用异常,找到原因的唯一方法是查看该库的源代码。在那里 - 它期望 <appSettings>
.
中的值
最好避免在我们的 class 中的任何地方直接依赖 app.config。但如果无济于事,我建议至少抛出一个非常明确的异常 - "Class Xyz requires a connection string..." 并指定它在何处寻找该连接字符串。至少这样消费者就不必猜测和阅读额外的源代码。
我有一个 asp.net mvc web 应用程序可以在视图中显示 table。
我还有一个数据访问项目(是一个class库,这个项目的dll会放到上面的MVC项目中,在里面访问数据)。
我的 Web 应用程序不执行数据访问操作。 class 库接受它。它包含 app.config 中的连接字符串,并且 entity framework 数据上下文也在库中。现在该库在控制台应用程序中运行良好。但它在网络应用程序中失败,因为连接字符串为空。
基本在class库中,可以得到连接字符串:
public class EndpointManagement : IEndpointManagement
{
public string GetConnectionString(MyDataContext context)
{
return ConfigurationManager.AppSettings["connectionString"];
}
}
不确定如何在 Web 应用程序中处理它????
将连接字符串放入 web.config。
我经常看到这种情况 - class 库需要来自主机应用程序 web.config 或 app.config.[=12= 的 <appSetting>
或连接字符串]
这是有问题的,因为对连接字符串的依赖是 "hidden" 在 class 库中。有人引用该库,它失败并出现空引用异常,找到原因的唯一方法是查看该库的源代码。在那里 - 它期望 <appSettings>
.
最好避免在我们的 class 中的任何地方直接依赖 app.config。但如果无济于事,我建议至少抛出一个非常明确的异常 - "Class Xyz requires a connection string..." 并指定它在何处寻找该连接字符串。至少这样消费者就不必猜测和阅读额外的源代码。