【问题标题】:Asp.Net Identity - A network-related or instance-specific error occurred while establishing a connection to SQL ServerAsp.Net Identity - 建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误
【发布时间】:2017-04-23 09:28:33
【问题描述】:

我有一个代码优先的 EF 应用程序。数据库已创建。现在我正在尝试使用 Asp.Net Identity 实现登录/注册模块。我点击了注册链接,但它给了我上面的错误。

Web.config:

...
<connectionStrings>
    <add name="ConnStr_Dev" 
         connectionString="Data Source = DELL-MyName; Initial Catalog = MyDB_Dev; user id = sa; password=myPassword;" 
         providerName="System.Data.SqlClient" />
    <!--<add name="DefaultConnection" 
         connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-MyApp-20170328111628.mdf;Initial Catalog=aspnet-MyApp-20170328111628;Integrated Security=True"
         providerName="System.Data.SqlClient" />-->
</connectionStrings>
<appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
...
<entityFramework>
    <defaultConnectionFactory 
          type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
        <parameters>
            <parameter value="Data Source = DELL-MyName; Initial Catalog = MyDB_Dev; user id = sa; password=myPassword;" />
        </parameters>
    </defaultConnectionFactory>
</entityFramework>

有什么需要单独设置的吗?

【问题讨论】:

    标签: sql-server asp.net-mvc asp.net-identity


    【解决方案1】:

    1- 使用下面的连接字符串。我在这里使用 SQL express 实例。将其替换为您通过 sql management studio 连接时使用的名称。

     <connectionStrings>
        <add name="ConnStr_Dev" connectionString="Server=.\SQLEXPRESS;Database=MyDB_Dev;User ID=sa;Password=myPassword;Trusted_Connection=False;Persist Security Info=False;Pooling=True;Min Pool Size=20;Max Pool Size=100;Connection Timeout=300;multipleactiveresultsets=True;App=EntityFramework" providerName="System.Data.SqlClient"/>
        </connectionStrings>
    

    2- 从配置文件中删除 &lt;entityFramework&gt; 标签。你不需要它。

    3- 确保将“ConnStr_Dev”作为字符串传递给 DbContext 构造函数。

    【讨论】:

      【解决方案2】:

      在 Models 文件夹中找到文件 IdentityModel.cs。在 ApplicationDbContext 构造函数中,连接字符串的名称被传递给基类构造函数 - 这需要与 web.config 中连接字符串的名称匹配

      所以你的情况

      <connectionStrings>
          <add name="ConnStr_Dev" 
               connectionString="Data Source = DELL-MyName; Initial Catalog = MyDB_Dev; user id = sa; password=myPassword;" 
               providerName="System.Data.SqlClient" />
      </connectionStrings>
      
      
      
      
      public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
          {
              public ApplicationDbContext()
                  : base("ConnStr_Dev", throwIfV1Schema: false)
              {
              }
      
              public static ApplicationDbContext Create()
              {
                  return new ApplicationDbContext();
              }
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多