尝试连接到SQL Server时出错 - localhost

时间:2012-12-29 18:26:17

标签: sql-server sql-server-2008

我已检查实例名称,auto close设置为true,允许检查服务器上的远程连接。当我打开SQL Server配置管理器时,服务器正在运行。我甚至重新启动了。我以与所有其他方式相同的方式创建了此db。我使用Entity Framework并检查了web.config中的名称并且它们匹配。这是向导的默认连接字符串 - 我在部署之前用于测试。我只是想不出其他任何东西来检查,以找出它不会连接的原因。在SQL Server中工作一切都很好。

这是一般错误。

  

建立与SQL> Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,并且SQL Server配置为允许远程连接。 (提供商:共享>内存提供商,错误:40 - 无法打开与SQL Server的连接)

配置:

connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string='data source=.\SQL_1;attachdbfilename="C:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.SQL_1\MSSQL\DATA\A_db.mdf";integrated security=True;connect timeout=10;user instance=True;multipleactiveresultsets=True;App=EntityFramework'" providerName="System.Data.EntityClient" />

提前致谢。

3 个答案:

答案 0 :(得分:1)

让我先说一下这个答案,说正确设置SQL实例并不像微软希望你用实体框架那样容易。这有点牵扯,要求你把DBA帽子放一点。

您遇到的错误表明Web实例正在尝试使用Windows Integrated Security连接到SQL Server。如果(a)正在运行该进程的Windows用户(可以在IIS中配置)被授权登录到SQL服务器并且在数据库中具有有效登录并且(b)如果SQL服务器,则这将正常工作与IIS服务器位于同一台计算机上或同一域中。

鉴于此,我建议使用SQL Server身份验证。如果您需要知道如何执行此操作,我建议您搜索“SQL Server身份验证设置” - 这是我发现的一篇文章,可能有助于您进行此设置。

http://msdn.microsoft.com/en-us/library/aa337562.aspx

一般情况下,我建议采取以下措施:

  1. 使用MS SQL Management Studio连接到sql server。
  2. 永久附加数据库,然后使用连接字符串上的Initial Catalog property而不是AttachDbFileName
  3. 然后在SQL服务器上设置您的登录用户名和密码,并在数据库中为其创建登录。
  4. 确保您的登录只能执行您希望它执行的存储过程。拒绝访问正在运行的sql语句。
  5. 您还需要在连接字符串中添加用户名和密码,并设置IntegratedSecurity = false。

    让我们知道一旦正确设置SQL服务器后情况如何。

答案 1 :(得分:0)

此错误表示您的提供程序代码无法找到SQL Server。如果您已检查服务器实例名称(它应为<yourLocalServer>\SQL_1),那么它可能是attachdbfilename=参数,因为这是指定要连接的数据库的一种非常不可靠的方法(您应该使用数据库名称,而不是文件名),因为文件名可能会有大约一百个原因而与您的应用程序无关。

答案 2 :(得分:0)

在通过VS连接到SQL Server或尝试在IIS上进行部署时,Microsoft提供了一般性的准则

清单

Ensure SQL server is started and you see the following message in the SQL Server ErrorLog:
SQL Server is now ready for client connections. This is an informational message; no user action is required.
Verify basic connectivity over IP address and check for any abnormalities:
ping –a <SQL Server machine>, ping –a <SQL Server IP address>. If you notice any issues, work with your network administrator to fix the same. 
Check if SQL is listening on appropriate protocols by reviewing the ErrorLog.
Check if you are able to connect to SQL server using a UDL file – if it works, then there may be an issue with the connection string. For instructions on the procedure about UDL test,select the option "Connect to SQL server using a UDL file " at the bottom.
Check if you are able to connect to SQL Server from other client systems and different user logins– if you are able to, then the issue could be specific to the client or login that is experiencing the issue. Check the Windows event logs on problematic client for additional pointers. Also check if network drivers are up to date.
If you are experiencing login failures, ensure the user has a login at the server level and appropriate permissions to connect to the database that the user is trying to connect to.

有关完整的详细信息,请阅读完整的page