繁体   English   中英

连接SQL Server问题

[英]SQL Server problems to connect

我正在用C#和WPF开发一个程序。 我希望数据存储在SQL Server数据库中。 我在我的PC上创建了一个带有实例名称的连接字符串,这很有效。 但是当我想通过互联网连接IP地址时,我会遇到一些错误:

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。 未找到服务器或无法访问服务器验证实例名称是否正确以及SQL Server是否配置为允许远程连接。 (TCP提供程序,错误0 - 无法建立连接,因为目标计算机主动拒绝它。)

我启用了TCP / IP,允许在SQL配置管理器中进行远程连接,在我的防火墙中打开了一个1433的端口,但我仍然收到此错误。

我的连接字符串是这样的:

String connString = @"Network Library=dbmssocn;
                     Network Address=127.0.0.1,1433;
                     Integrated security=SSPI;
                     Initial Catalog=db";

SqlConnection conn = new SqlConnection(connString);
conn.Open( );

我的错误在哪里?

配置SQL Server以允许TCP / IP连接。 转到SQL Server配置管理器 - >网络然后是SQL Server命名实例的协议 - > TCP / IP。

看到这个图像!

SQL Server配置管理器协议配置

你的连接字符串中有一个非常小的错误,说实话,我不能责怪你,因为它是SQL Sever行为的非常奇怪的方式。 我不确定此错误是否位于连接提供程序端或SQL Server实例端。 应用程序用于使用dbmssocn (Win32 Winsock TCP / IP)连接到SQL Server的网络库的名称应始终以大写字母提及。 虽然我没有看到任何来自MS的相关MSDN文档来支持我的陈述,但它确实在我这样做时起作用。 以下是您应该用于修复错误的连接字符串。

String connString = @“Network Library = DBMSSOCN ; Network Address = 127.0.0.1,1433; Integrated security = SSPI; Initial Catalog = db”;

说真的,我在复制你的问题时吓坏了,而不是从我的问题中复制连接字符串,而是从其他博客复制:)。 但一切都很顺利。 我还假设在键入此答案时,您正在连接的sql server的默认(非命名实例)实例上实际存在名为“db”的数据库。 如果在连接字符串中更改网络库名称的大小写无效,则请仔细检查您要连接到的sql server默认实例的数据库“db”是否必须存在。 如果您在安装中使用sql server的命名实例,那么该实例名称也应该出现在连接字符串中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM