update-database:“建立与SQL Server的连接时发生与网络相关或特定于实例的错误”

时间:2015-07-07 09:20:57

标签: c# entity-framework visual-studio

我有一个简单的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,然后再次安装它。什么都没有改变。

4 个答案:

答案 0 :(得分:49)

我终于发现了。我的解决方案中有一个网站项目和我的API。问题是该网站被设置为启动项目。因此,实体框架搜索了网站$scope.pinTicket中的连接字符串,而不是api的web.config。将启动项目更改为我的API解决了这个问题。

如果您想将网站项目作为启动项目。只需将连接字符串复制到网站web.config

尽管如此,感谢每个人的帮助。

答案 1 :(得分:0)

您说您可以使用此连接字符串查看数据&amp;表...你还可以使用这个连接来插入新记录吗?

对于每个用户,SQL Server允许您定义他们是否具有读访问权限和/或写访问权限。也许您的用户错过了db_datawriter权限...?

enter image description here

答案 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");
}