网站没有从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.config获取连接字符串.它正在搜索app.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#数据访问层仍然需要在那里提供连接字符串,以便编译器完成其工作。