【问题标题】:ADO.NET Multiple connection strings Unable to locate a Local DatabaseADO.NET 多个连接字符串无法找到本地数据库
【发布时间】:2019-03-23 14:43:03
【问题描述】:

我曾经使用一个数据库运行站点,但现在我们在第二个数据库上扩展了新功能。我突然遇到这样的异常,我不确定它是否与连接字符串有关,有经验的人可以给我一个线索。

注意:用户可以正常连接,但会话到期后,我会在日志中看到:

发生网络相关或特定于实例的错误,同时 建立与 SQL Server 的连接。找不到服务器或 无法访问。验证实例名称是否正确,并且 SQL Server 配置为允许远程连接。 (提供者:SQL 网络接口,错误:52 - 无法找到本地数据库 运行时安装。验证 SQL Server Express 是否正确 已安装并且启用了本地数据库运行时功能。)

内部异常:

System.ComponentModel.Win32Exception (0x80004005):系统无法 找到指定的文件

我使用 2 个连接字符串运行站点,如下所示:

  <connectionStrings>
 <add name="db_entity1" connectionString="metadata=res://*/Models.AliModel.csdl|res://*/Models.AliModel.ssdl|res://*/Models.AliModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=192.168.200.6;initial catalog=dbname;user id=dbusername;password=password;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  <add name="db_ProductionEntities" connectionString="metadata=res://*/Models.Model.csdl|res://*/Models.Model.ssdl|res://*/Models.Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=192.168.200.2;initial catalog=maindatabasename;user id=databaseusername;password=password;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
    </connectionStrings>

    <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>

db_ProductionEntities 是用户连接到网站的默认连接(这是用户名和电子邮件所在的位置)。第二次连接仅用于新功能。

【问题讨论】:

  • 我建议您在问题中包含实际连接字符串的混淆版本。
  • 当然,我添加了它
  • 可能是在 defaultConnectionFactory 我需要添加完整的连接字符串而不是“mssqllocaldb”吗?
  • 根据this answer,defaultConnectionFactory 仅在没有为上下文提供连接字符串时使用。但错误清楚地表明它正在使用localDb
  • 我不在任何地方使用本地数据库

标签: sql-server entity-framework ado.net


【解决方案1】:

移除默认Connectionfactory设置

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 2011-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-24
    相关资源
    最近更新 更多