【发布时间】: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="data source=192.168.200.6;initial catalog=dbname;user id=dbusername;password=password;MultipleActiveResultSets=True;App=EntityFramework"" 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="data source=192.168.200.2;initial catalog=maindatabasename;user id=databaseusername;password=password;MultipleActiveResultSets=True;App=EntityFramework"" 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