外部数据库MVC 5.2.2成员资格

时间:2015-01-16 01:45:29

标签: c# asp.net-mvc sql-server-2008 asp.net-mvc-5 membership

我一直在与新的Google OAuth争吵好几天,我相信我让它工作(删除并重新安装了owin),但现在当我点击我的网站时,我得到:

SQLExpress数据库文件自动创建错误:

...连接字符串使用应用程序的App_Data目录中的数据库位置指定本地Sql Server Express实例...

表示它正在尝试访问App_Data目录中的SQL Express数据库。我希望它连接到我现有的外部SQL Server

我创建了一个连接字符串(现在有两个)。

我试图将传递到ApplicationDbContext基础的连接字符串更改为我的连接字符串:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("myconnection", throwIfV1Schema: false)
    {
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }
}

我尝试指向直接连接字符串和实体字符串。实体字符串最初错误地表示没有包含的表,但现在它给了我同样的错误。

我尝试将web.config更改为:

<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
  <parameters>
    <parameter value="[tried a connection string here as well]"/>
  </parameters>
</defaultConnectionFactory>
<providers>
  <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>

我在FilterConfig.cs中读过类似线条的提示(它引用的功能似乎不存在于EF 5中):

filters.Add(new InitializeMembershipAttribute());

我刚刚开始使用来自ASP.NET的EF 5 - 基本概念没有问题,框架非常灵活,但会员问题一直是令人沮丧的经历(而且我已经很累了在这很久)!我之前在MVC中创建了没有会员资格的小网站......

是否缺少特定的web.config条目,类似于旧学校ASP.NET成员资格的条目?

我也在使用[授权(角色=&#34; a,b,等等#34;)] - 我是否需要指定角色特定的内容,或者对身份类的更改是否需要将其作为好?

1 个答案:

答案 0 :(得分:0)

您需要将连接字符串添加到web.config。 DbContext中设置的基本名称必须与web.config中的名称匹配,并且区分大小写。

远程数据库看起来像第一行,本地数据库看起来像第二行。

像这样:

<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>
    <connectionStrings>
        <add name="DefaultConnection" connectionString="Data Source=0.0.0.0;Initial Catalog=DatabaseName;Persist Security Info=True;User ID=someuser;Password=somepass" providerName="System.Data.SqlClient" />
        <add name="mycontext" connectionString="Data Source=(localdb)\v11.0; Initial Catalog=mycontext-20150116012312; Integrated Security=True; MultipleActiveResultSets=True; AttachDbFilename=|DataDirectory|mycontext-20150116012312.mdf" providerName="System.Data.SqlClient" />
    </connectionStrings>

    ... more content here ...

</configuration>

希望这有帮助!