Asp.net mvc MVC4 EF 5在VS 2010中针对远程数据库进行调试

Asp.net mvc MVC4 EF 5在VS 2010中针对远程数据库进行调试,asp.net-mvc,entity-framework,asp.net-mvc-4,entity-framework-4,Asp.net Mvc,Entity Framework,Asp.net Mvc 4,Entity Framework 4,当我尝试在VS2010中针对远程数据库本地调试MVC4/EF 5应用程序时,会发生以下情况 错误源(InitializeSimpleMembershipAttribute.cs): 调试后,我发现使用了以下connectionstring: "Data Source=localhost;Initial Catalog=mydb;Persist Security Info=True;User ID=mydb;Password=mydb;Application Name=EntityFramewor

当我尝试在VS2010中针对远程数据库本地调试MVC4/EF 5应用程序时,会发生以下情况

错误源(InitializeSimpleMembershipAttribute.cs):

调试后,我发现使用了以下connectionstring:

"Data Source=localhost;Initial Catalog=mydb;Persist Security Info=True;User ID=mydb;Password=mydb;Application Name=EntityFrameworkMUE"
这是Web.Config中真正的连接字符串:

<add name="DefaultConnection" connectionString="Data Source=hostname.com;Initial Catalog=mydb;User ID=mydb;Password=mydb;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />

AccountModels.cs中的代码片段:

public class UsersContext : DbContext
{
    public UsersContext() : base("DefaultConnection")
    {
    }

    public DbSet<UserProfile> UserProfiles { get; set; }
}
public类用户上下文:DbContext
{
public UsersContext():base(“DefaultConnection”)
{
}
公共数据库集用户配置文件{get;set;}
}
很明显,应该使用DefaultConnection,但在此过程中,它的修改

当我将我的站点发布到远程服务器(sql server也托管在该服务器上)时,一切正常

在其他文章中提到的解决方案对我来说不起作用,例如在Web.Config中将连接命名为我的DbContext类的名称

编辑-我做了更多的实验…

这不起作用:

public class UsersContext : DbContext
{
    public UsersContext() : base(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString)
    {
    }

    public DbSet<UserProfile> UserProfiles { get; set; }
}
public类用户上下文:DbContext
{
public UsersContext():base(ConfigurationManager.ConnectionString[“DefaultConnection”].ConnectionString)
{
}
公共数据库集用户配置文件{get;set;}
}
但这确实:

public class UsersContext : DbContext
{
    public UsersContext()
        : base("Data Source=hostname.com;Initial Catalog=mydb;User ID=mydb;Password=mydb;MultipleActiveResultSets=True")
    {
    }

    public DbSet<UserProfile> UserProfiles { get; set; }
}
public类用户上下文:DbContext
{
公共用户上下文()
:base(“数据源=hostname.com;初始目录=mydb;用户ID=mydb;密码=mydb;MultipleActiveResultSets=True”)
{
}
公共数据库集用户配置文件{get;set;}
}
在本地调试时,我感觉我的Web.Config没有被使用/识别


仍然需要帮助:-p

我最近遇到了这个问题,它与Name=EntityFrameworkMUE有关,我们的解决方案是在应用程序设置文件中指定连接字符串,然后通过ConfigurationManager引用基

base(new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString), true) {}

您可能在发布期间对web.config进行XSLT转换。您应该检查是否有web.release.config文件(或web.debug.config),并将本地web.config文件中的defaultconnection连接字符串更改为匹配。

也许我的答案会很奇怪,但我遇到了这种情况,我在更改我的connectionstring时解决了它,如下所示


我将connectionstring更改为DbContext类名。

这不起作用。但是,当我使用连接字符串本身作为public UsersContext():base的参数时,它确实起了作用。它继续运行,但现在在WebSecurity上失败;似乎它在任何地方都失败了,我想将connectionstring名称作为参数传递。没有发布任何内容。我正在VS2010中调试。我相信VS 2010内置开发服务器已经使用:)在解决方案范围内搜索
localhost
。也许您在global.asax中运行了一些代码,这些代码在运行时覆盖了它?我搜索了解决方案,没有发现任何奇怪的地方。正如我在文章中提到的,我已经尝试过在Global.asax.cs中配置log4net并设置自己的ViewEngine。谢谢:)现在我已经在本地安装了IIS 7.5,并连接到该进程进行调试。使用了正确的连接管柱。我仍然对一个解决方案感兴趣,因为这个方法涉及到我想要调试的每个站点的额外工作。
public class UsersContext : DbContext
{
    public UsersContext()
        : base("Data Source=hostname.com;Initial Catalog=mydb;User ID=mydb;Password=mydb;MultipleActiveResultSets=True")
    {
    }

    public DbSet<UserProfile> UserProfiles { get; set; }
}
base(new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString), true) {}
DefaultConnection
UsersContext