2012-12-29 53 views
1

我检查了实例名称,自动关闭设置为true,允许在服务器上进行远程连接检查。当我打开SQL Server配置管理器时,服务器正在运行。我甚至重新启动。我已经创建了这个数据库,就像所有其他人一样。我使用实体框架并检查了web.config中的名称,并且它们匹配。这是向导的默认连接字符串 - 我在部署之前用于测试。我只是想不出别的什么来检查,以弄清楚为什么它不会连接。在SQL Server内部工作一切都很好。尝试连接到SQL Server时出错 - localhost

以下是一般错误。

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: Shared >Memory Provider, error: 40 - Could not open a connection to 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" />

在此先感谢。

+2

你能显示使用的连接字符串吗? – Steve

+0

请记住,此连接字符串是为本地主机自行生成的,服务器符合标准。由于奇怪的错误,我搬到了服务器。 – OneFineDay

回答

1

让我先说这个答案吧,说一个SQL实例的正确设置并不像微软希望你用实体框架来思考那么简单。这有点牵扯并且需要你将DBA帽子放一点。

您有错误表示Web实例尝试使用Windows集成安全性连接到SQL服务器。 (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语句。

您还需要将用户名和密码添加到连接字符串中,并将IntegratedSecurity设置为false。

让我们知道如何正确设置SQL服务器。

+0

我会马上开始。当我可以的时候我会回来 - 忙碌的一周。这是我与实体的第三个Db。前两个部署得很好,这个令人头疼。我回顾了之前的那些以检查差异。我相对擅长寻找答案,但这个问题已经令人筋疲力尽。我很感激迄今为止所有的帮助。 – OneFineDay

+0

我的网站连接到我的数据库是由我的托管公司在IIS7中托管 - 不知道这是否会改变任何东西。 – OneFineDay

+0

当我为数据库打开SSMS时,我看到了sa和其他登录(我正在使用它),它的状态为_Sql Server Auth_呈灰色 - 是否有帮助? Peoples被设置为Grant,登录已启用。 – OneFineDay

0

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

+0

Current:Data Source = tcp:{myhostingsiteaddress} .com; Initial Catalog = dbname; User ID = dbname; Pwd = password;我收到一个奇怪的错误:用户'NT AUTHORITY \ ANONYMOUS LOGON'登录失败._ – OneFineDay

+0

更改con字符串时,我也得到这个错误:_Could找不到存储过程'dbo.aspnet_CheckSchemaVersion'._ – OneFineDay

+0

这两个错误中的哪一个你会得到吗? (他们不兼容),你在什么时候得到它? – RBarryYoung

相关问题