我有一个简单的C#项目。这是我在数据库web.config
中的连接字符串:
<connectionStrings>
<add name="DefaultConnection"
connectionString="Data Source=172.17.0.47;Initial Catalog=DevSystemListe;User ID=web_access;Password=123456"
providerName="System.Data.SqlClient" />
</connectionStrings>
我已经确定此连接正常。我可以通过此连接从Visual Studio连接到我的数据库,我也可以看到表和数据。
当我想用update-database
更新我的数据库时,会发生以下错误:
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)
我卸载了Entity Framework,然后再次安装它。什么都没有改变。
答案 0 :(得分:49)
我终于发现了。我的解决方案中有一个网站项目和我的API。问题是该网站被设置为启动项目。因此,实体框架搜索了网站$scope.pinTicket
中的连接字符串,而不是api的web.config
。将启动项目更改为我的API解决了这个问题。
如果您想将网站项目作为启动项目。只需将连接字符串复制到网站web.config
。
尽管如此,感谢每个人的帮助。
答案 1 :(得分:0)
您说您可以使用此连接字符串查看数据&amp;表...你还可以使用这个连接来插入新记录吗?
对于每个用户,SQL Server允许您定义他们是否具有读访问权限和/或写访问权限。也许您的用户错过了db_datawriter
权限...?
答案 2 :(得分:0)
如果应用程序在完整的IIS下运行,则需要对IIS进行一些配置,以确保可以在应用程序中使用localDB实例。参见https://blogs.msdn.microsoft.com/sqlexpress/2011/12/08/using-localdb-with-full-iis-part-1-user-profile/
答案 3 :(得分:0)
对于迁移,您也可以使用 OnConfiguring EntityFramework 默认会检查它。 将此代码添加到您的 DbContext。
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(@"connection_string_here");
}