C# 网站未从web.config获取连接字符串。它正在搜索app.config

C# 网站未从web.config获取连接字符串。它正在搜索app.config,c#,asp.net,f#,C#,Asp.net,F#,我有三层结构的项目DataAccessLayer,BusinessLogicLayer和网站 在我的DataAccessLayer中,我使用了从app.config文件访问connectionstring的F#library项目 F#代码- 类型dbSchema=SqlDataConnection 让connectionString=System.Configuration.ConfigurationManager.connectionString。[“MyConnection”].Connec

我有三层结构的项目DataAccessLayer,BusinessLogicLayer和网站

在我的DataAccessLayer中,我使用了从app.config文件访问connectionstring的F#library项目

F#代码-

类型dbSchema=SqlDataConnection
让connectionString=System.Configuration.ConfigurationManager.connectionString。[“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>

现在我已经给出了该dll在网站BusinessLogic和网站项目中的参考

我正在调用BusinessLogicLayer的一个函数来获取数据-

var MyDataList=BusinessLogic.GetAllData().ToList()


现在的问题是,网站正在app.config文件而不是web.config文件中搜索connectionstring。我希望它从web.config获取connectionstring

您可以为web项目使用web.config,也可以为应用程序使用app.config


作为替代方案,您可以在自定义配置文件中加载。另请参见,您可以拥有web项目的web.config或应用程序的app.config


作为替代方案,您可以在自定义配置文件中加载。另请参见

您可以使用下面的代码行获取连接字符串-

using System;
using System.Configuration;

var connectionString=ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
以下是参考资料:

您可以使用下面的代码行获取连接字符串-

using System;
using System.Configuration;

var connectionString=ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
以下是参考资料:

这是一个老问题,但在搜索中它仍然出现在这个问题之前:

在F#数据访问中,添加如下函数

然后在C代码中,您可以调用getDbContext,并在运行时从web.config传入连接字符串


请注意,F#数据访问层仍然需要在那里提供连接字符串,编译器才能完成它的工作。

这是一个老问题,但在搜索中它仍然出现在这个问题之前:

在F#数据访问中,添加如下函数

然后在C代码中,您可以调用getDbContext,并在运行时从web.config传入连接字符串


请注意,F#数据访问层仍然需要在那里提供连接字符串,编译器才能完成它的工作。

您的app.config在“DataAccessLayer”项目中,是吗?F#项目是否在自己的进程中运行?如果一切都是从IIS运行的,那么它应该从web.config读取。您肯定在web.config中添加了
yes节,我怀疑这不起作用,因为F#编译器需要在编译时而不是运行时访问连接字符串。但我可能错了。它的工作是在web应用程序目录中添加app.config。但不是web.config。你的app.config在你的“DataAccessLayer”项目中,是吗?F#项目是否在它自己的进程中运行?如果一切都是从IIS运行的,那么它应该从web.config读取。您肯定在web.config中添加了
yes节,我怀疑这不起作用,因为F#编译器需要在编译时而不是运行时访问连接字符串。但我可能错了。它的工作是在web应用程序目录中添加app.config。但不适用于web.config。感谢您的快速响应。实际上,它不会自动与web.config建立连接。我只想在web.config中定义连接字符串。感谢您的快速响应。实际上,它不会自动与web.config建立连接。我只想在web.config中定义连接字符串。
let getDbContext connString = 
    match connString with
    | "" -> Sql.GetDataContext()
    | _ -> Sql.GetDataContext(connString)