C# 实体框架6-可以从PackageManager进行连接,但不能从WebAPI项目进行连接

C# 实体框架6-可以从PackageManager进行连接,但不能从WebAPI项目进行连接,c#,asp.net,entity-framework,asp.net-web-api,web,C#,Asp.net,Entity Framework,Asp.net Web Api,Web,我的解决方案由两个项目组成。一个是Web API/angular2应用程序,另一个是与实体框架接口的数据访问层。我的web应用程序项目引用此数据层项目以创建/检索数据 尝试在数据库上下文中添加新数据或从数据库集检索数据时,我遇到以下错误: System.Data.SqlClient.SqlException:'建立到SQL Server的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:SQL网

我的解决方案由两个项目组成。一个是Web API/angular2应用程序,另一个是与实体框架接口的数据访问层。我的web应用程序项目引用此数据层项目以创建/检索数据

尝试在数据库上下文中添加新数据或从数据库集检索数据时,我遇到以下错误:

System.Data.SqlClient.SqlException:'建立到SQL Server的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:SQL网络接口,错误:26-定位指定的服务器/实例时出错)'

以下是我的数据层项目中的应用程序配置:

    <?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
  </configSections>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb"/>
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
    </providers>
  </entityFramework>
  <connectionStrings>
    <add name="SettingBuilder" connectionString="Data Source=(LocalDb)\ProjectsV13;Initial Catalog=SettingBuilder;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/>
  </connectionStrings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/></startup></configuration>
任何帮助都将不胜感激

编辑:我制作了一个简单的控制台应用程序来测试这一点。从控制台应用程序,它可以工作-我刚刚从我的数据层项目复制了app.config。但是,DB是在另一个地方创建的,具有完全限定的名称,而不是我在app.config中指定的名称(它将SettingBuilder.Data.SettingBuilderContext创建为DB)

这导致我假设框架没有引用我的应用程序配置文件。有没有办法进行配置


编辑2:如果我手动硬编码我的连接字符串,这同样有效。我刚刚将它从webconfig复制到db上下文初始化中

一,。您不需要数据层项目中的app config,因为它不是可执行文件。它使用WebApi项目的配置文件-web.config。2.为什么要注释掉“base”(“SettingBuilder”)?EF如何知道以其他方式使用哪个连接字符串?3.您的EF连接字符串看起来不正确。该配置存在于数据层中,可供package manager控制台在我想要添加迁移等时使用。我尝试过注释掉/未注释掉该行,但似乎没有什么不同。我刚刚用开发控制台应用程序的发现更新了帖子。您如何实例化SettingBuilderContext?这是ASP.Net核心WebApi项目吗?
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
  </configSections>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb"/>
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
    </providers>
  </entityFramework>
  <connectionStrings>
    <add name="SettingBuilder" connectionString="Data Source=(LocalDb)\ProjectsV13;Initial Catalog=SettingBuilder;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/>
  </connectionStrings>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
    </handlers>
    <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
  </system.webServer>
</configuration>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Entity;

namespace SettingBuilder.Data
{
    public class SettingBuilderContext : DbContext
    {
        public DbSet<Setting> Settings { get; set; }

        public SettingBuilderContext() //: base("SettingBuilder")
        {

        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Setting>().ToTable("Setting");
        }
    }
}
[HttpPost("[action]")]
public void CreateSetting([FromBody]Setting setting)
{
    _unitOfWork.SettingRepository.CreateSetting(setting);
    _unitOfWork.Save();
}