Asp.net 使用EntityFramework时远程数据库的连接字符串

Asp.net 使用EntityFramework时远程数据库的连接字符串,asp.net,sql-server,sql-server-2008,entity-framework,entity-framework-5,Asp.net,Sql Server,Sql Server 2008,Entity Framework,Entity Framework 5,我有一个ASP.NET MVC应用程序,我正在使用EntityFramework 5.0。我还安装了一个“CodeFirstMembershipProvider”Nuget包,它为ASP.NET成员身份提供了一些代码——我相信我的web.config也做了一些更改 基本上,我的问题是我的应用程序在本地SQL Server实例上运行良好,但当我使用此连接字符串指定远程数据库时: (密码和主机名已编辑) 它无法使用此连接字符串。它继续尝试使用本地SQL Server实例,因此它在本地工作,但当我

我有一个ASP.NET MVC应用程序,我正在使用EntityFramework 5.0。我还安装了一个“CodeFirstMembershipProvider”Nuget包,它为ASP.NET成员身份提供了一些代码——我相信我的web.config也做了一些更改

基本上,我的问题是我的应用程序在本地SQL Server实例上运行良好,但当我使用此连接字符串指定远程数据库时:


(密码和主机名已编辑)

它无法使用此连接字符串。它继续尝试使用本地SQL Server实例,因此它在本地工作,但当我在我的web和数据库主机上尝试它时,它失败了,因为它尝试使用本地SQL Server实例,而在我的数据库主机上却无法做到这一点。远程数据库主机使用SQL Server 2008 R2

有人知道为什么会这样,或者我能做些什么来解决这个问题吗

我不打算发布整个web.config,但这里有几行可能是相关的:

<add key="DatabaseInitializerForType TreasureHuntDB, QrCodeTreasureHunter" value="DataContextInitializer, QrCodeTreasureHunter"
问答建议您的连接字符串部分如下所示:

<connectionStrings>
    <clear /> <!--- need this to prevent using LocalSqlServer from machine.config or somewhere becouse it is not present when when publish to hosting -->
    <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="etc" />  
</connectionStrings>


您似乎没有告诉EF连接字符串的名称,因此它只是按照约定创建一个连接字符串。您可以将名称以
“name=DefaultConnection”
的形式传递给DbContext ctor,或者在配置中重命名连接字符串,使其名称与DbContext派生类的名称匹配。

如何告诉EF使用DefaultConnection?您需要使用
“Name=DefaultConnection”
字符串调用DbContext-ctor-您这样做了吗?你的DbContext看起来怎么样?是的,就是这样。我的DbContext是dbdb-我需要将连接字符串名称更改为该名称(以及在其他一些地方)。如果你把它作为答案,我可以把你的帖子标记为正确答案。
<sessionState mode="InProc" customProvider="DefaultSessionProvider">
  <providers>
    <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" />
  </providers>
</sessionState>
<membership defaultProvider="CodeFirstMembershipProvider">
  <providers>
    <add name="CodeFirstMembershipProvider" type="CodeFirstMembershipProvider" connectionStringName="DefaultConnection" />
  </providers>
</membership>
<roleManager enabled="true" defaultProvider="CodeFirstRoleProvider">
  <providers>
    <clear />
    <add name="CodeFirstRoleProvider" type="CodeFirstRoleProvider" connectionStringName="DefaultConnection" />
  </providers>
</roleManager>
      <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
  </entityFramework>
<connectionStrings>
    <clear /> <!--- need this to prevent using LocalSqlServer from machine.config or somewhere becouse it is not present when when publish to hosting -->
    <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="etc" />  
</connectionStrings>