MSSQL Error 'The underlying provider failed on

2018-12-31 13:21发布

I was using an .mdf for connecting to a database and entityClient. Now I want to change the connection string so that there will be no .mdf file.

Is the following connectionString correct?

<connectionStrings>
   <!--<add name="conString" connectionString="metadata=res://*/conString.csdl|res://*/conString.ssdl|res://*/conString.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQL2008;AttachDbFilename=|DataDirectory|\NData.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />-->
   <add name="conString" connectionString="metadata=res://*/conString.csdl|res://*/conString.ssdl|res://*/conString.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQL2008;Initial Catalog=NData;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

Because I always get the error:

The underlying provider failed on Open

30条回答
不流泪的眼
2楼-- · 2018-12-31 13:40

I had this problem because the Application Pool login this app was running under had changed.

In IIS:

  • Find the Application pool by clicking on your site and going to Basic Settings.

  • Go to Application Pools.

  • Click on your site's application pool.

  • Click on Advanced Settings.

  • In Identity, enter account login and password.

  • Restart your site and try again.

查看更多
千与千寻千般痛.
3楼-- · 2018-12-31 13:42

This can also happen if you restore a database and the user already exists with different schema, leaving you unable to assign the correct permissions.

To correct this run:

USE your_database
EXEC sp_change_users_login 'Auto_Fix', 'user', NULL, 'cf'
GO
EXEC sp_change_users_login 'update_one', 'user', 'user'
GO
查看更多
泛滥B
4楼-- · 2018-12-31 13:42

The SQL Server Express service were not set tostart automatically.

1) Go to control panel 2) Administrative Tools 3) Service 4) Set SQL Server express to start automatically by clicking on it 5) Right click and start the service

I hope that will help.

查看更多
闭嘴吧你
5楼-- · 2018-12-31 13:42

I had the same issue few days ago, using "Integrated Security=True;" in the connection string you need to run the application pool identity under "localsystem" Sure this is not recommended but for testing it does the job.

This is how you can change the identity in IIS 7: http://www.iis.net/learn/manage/configuring-security/application-pool-identities

查看更多
大哥的爱人
6楼-- · 2018-12-31 13:43

I had the same problem but what worked for me was removing this from the Connection String:

persist security info=True

查看更多
浪荡孟婆
7楼-- · 2018-12-31 13:50

I found the problem was that I had the server path within the connection string in one of these variants:

SERVER\SQLEXPRESS
SERVER

When really I should have:

.\SQLEXPRESS

For some reason I got the error whenever it had difficulty locating the instance of SQL.

查看更多
登录 后发表回答