网站没有从web.config获取连接字符串.它正在搜索app.config
本文关键字:config app 搜索 字符串 获取 web 网站 连接 | 更新日期: 2023-09-27 18:29:22
我有一个项目,有三层结构的DataAccessLayer、BusinessLogicLayer和Website。
在我的DataAccessLayer中,我使用了F#库项目和从app.config文件访问的连接字符串
F#代码-
type dbSchema = SqlDataConnection<"","MyConnection">
let connectionString = System.Configuration.ConfigurationManager.ConnectionStrings. ["MyConnection"].ConnectionString
App.config代码-
<connectionStrings>
<add name="MyConnection" connectionString="Data Source=MyServer;Initial Catalog=MyDB;Persist Security Info=True;User ID=sa;Password=xyz;" providerName="System.Data.SqlClient"/>
</connectionStrings>
现在我已经在网站BusinessLogic和网站项目中给出了这个dll的参考。
我正在调用BusinessLogicLayer的一个函数来获取数据-
var MyDataList=BusinessLogic.GetAllData().ToList();
现在的问题是,网站正在app.config文件而不是web.config中搜索连接字符串。我希望它从web.config 中获取连接字符串
您可以为web项目提供web.config,也可以为应用程序提供app.config。
作为替代方案,您可以在自定义配置文件中加载,另请参阅http://msdn.microsoft.com/en-us/library/system.configuration.sectioninformation.configsource.aspx
您可以使用以下代码行-获取连接字符串
using System;
using System.Configuration;
var connectionString=ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
以下是参考资料:App.config 中的连接字符串
这是一个老问题,但在搜索中它仍然出现在这个问题之前:类中SQL的F#类型提供程序
在F#数据访问中,添加这样的函数
let getDbContext connString =
match connString with
| "" -> Sql.GetDataContext()
| _ -> Sql.GetDataContext(connString)
然后在C#代码中,您可以调用getDbContext,并在运行时传入web.config中的连接字符串。
请注意,F#数据访问层仍然需要在那里提供连接字符串,以便编译器完成其工作。