An error occurred while getting provider informati

2019-04-22 20:25发布

Getting the error:

System.Data.ProviderIncompatibleException: An error occurred while getting provider information from the database. This can be caused by Entity Framework using an incorrect connection string.
Check the inner exceptions for details and ensure that the connection string is correct.
---> System.Data.ProviderIncompatibleException: The provider did not return a ProviderManifestToken string.
---> System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 25 - Connection string is not valid)

I get the same error when trying to do an Add-Migration

Here is my connection string, I need to access my local SQL server and NOT SQLEXPRESS.

  <connectionStrings>
    <add name="ReaderInsightDbContext" 
         connectionString="data source=localhost\MSSQLSERVER;
                         initial catalog=ReaderInsight;Integrated Security=True" 
         providerName="System.Data.SqlClient" />
  </connectionStrings>

My DB is located:

C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA

So my instance is MSSQLSERVER. Not sure what is going on. It first worked just fine, but after I changed my code to use the UOW pattern, this is happening. I also upgraded from EF 4.3 to EF5. Same issue.

I tried many variations of the data source in the connection string, none work, here are some examples:

  • localhost\MSSQLSERVER
  • .\MSSQLSERVER
  • //localhost\MSSQLSERVER
  • (local)\MSSQLSERVER
  • 127.0.0.1\MSSQLSERVER

If I do .\SQLEXPRESS it works.

7条回答
神经病院院长
2楼-- · 2019-04-22 20:47

See this post:

MVC3 Music Store Tutorial Connection String issue

Looks like you are missing the MARS setting.

查看更多
3楼-- · 2019-04-22 20:50

I used this with VS 2010 and it worked:

  1. Added User Instance=true
  2. Used the data source .\SQLEXPRESS

查看更多
劳资没心,怎么记你
4楼-- · 2019-04-22 20:51

Check that, The SQL Server you are using in the connection string is started or not.

查看更多
聊天终结者
5楼-- · 2019-04-22 20:53

Managed to get it resolved.

Bottom line manually deleting the migration files causes issues.

Made sure my connection string looks like so:

  <connectionStrings>
    <add name="ReaderInsightDbContext" 
     connectionString=
     "Data Source=(local);Initial Catalog=ReaderInsight;Integrated Security=True"
     providerName="System.Data.SqlClient" />
  </connectionStrings>

Performed an Update-Database -TargetMigration:$InitialDatabase which did not work as it said there is still pending changes.

So I performed

System.Data.Entity.Database.SetInitializer(     
  new System.Data
            .Entity
            .DropCreateDatabaseIfModelChanges<ReaderInsightDbContext>()); 

in the global.asax file.

Commented it out, so it wont run again. I then did a Add-Migration Init and it recreated the script for the entire DB and when I ran Update-Database worked like a charm.

查看更多
霸刀☆藐视天下
6楼-- · 2019-04-22 20:57

I had the same problem the other day. The reason was my MSSQL server version. I tried to use VS2010 and SQL SERVER 2008 and then it didn't work. It worked fine with SQL Express which comes with VS2010 (and it wasn't started) but not with SQL SERVER.

查看更多
beautiful°
7楼-- · 2019-04-22 21:09

I had this problem when I changed my password that SQL Server won't start. Check that :)

查看更多
登录 后发表回答