提供程序未返回ProviderManifestToken字符串

时间:2015-12-30 15:55:05

标签: c# sql-server entity-framework

我知道这个问题有几个问题我几乎都检查过每一个问题而我仍然遇到同样的问题。

我有一个我发布到IIS的API。但是,我似乎无法正确使用连接字符串,因为当我运行针对该连接字符串的update-database命令时,我收到以下错误:

  

System.Data.Entity.Core.ProviderIncompatibleException:访问数据库时出错。这通常意味着与数据库的连接失败。检查连接字符串是否正确,以及是否使用了相应的DbContext构造函数来指定它或在应用程序的配置文件中找到它。有关DbContext和连接的信息,请参阅http://go.microsoft.com/fwlink/?LinkId=386386。有关失败的详细信息,请参阅内部异常。 ---> System.Data.Entity.Core.ProviderIncompatibleException:提供程序未返回ProviderManifestToken字符串。 ---> System.Data.SqlClient.SqlException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)

这是我的connectionString;

    <add name="ApplicationDbContext" connectionString="Data Source=WVM002\SQLEXPRESS;Initial Catalog=ImobiliariaARQSI_v01;User ID=sa;Password=password;Persist Security Info = True;" providerName="System.Data.SqlClient"/>

这就是背景:

public ApplicationDbContext() : base("ImobiliariaARQSI_v01", throwIfV1Schema: false)
    {
    }

我在托管该实例的另一台计算机上设置了SQL Server上的端口,并且它已被识别。问题可能在于连接字符串。 请帮助。

1 个答案:

答案 0 :(得分:1)

在构造函数中,您传递的是dababase名称​​ ImobiliariaARQSI_v01 ,而不是根据.config传递连接字符串名称:

public ApplicationDbContext() : base("ApplicationDbContext", throwIfV1Schema: false){}