ASP.NET初学者问题:如何摆脱这个错误?

时间:2010-09-08 06:18:45

标签: c# asp.net sql connection-string

我正在尝试在ASP.NET C#中创建一个简单的登录页面,但是我遇到了一些错误。

我搜索了该错误,并尝试了所有解决方案,但无济于事。 我究竟做错了什么?错误是:

  

“建立与SQL Server的连接时发生与网络相关或特定于实例的错误。未找到服务器或无法访问服务器。验证实例名称是否正确以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)“

我认为这与我的连接字符串有关,如下所示:

 <add name="cn"
      connectionString="server=HCL;DataBase=GS;Integrated Security=True" />

“HCL”是通过LAN连接到我的PC的另一台机器,这个数据库“GS”驻留在它上面。我在上述代码的“服务器”属性中给出的值有问题吗?如果不是我可能做错了什么?

我可以告诉我尝试的所有解决方案。如果需要,请告诉我。

5 个答案:

答案 0 :(得分:1)

错误肯定是连通性。通常在防火墙规则中,远程连接被禁用或仅是一般连接问题。

但是,使用集成安全性可能是您的问题。如果您在域/工作组中,这可以正常工作,但是如果没有,那么您可能需要传递您的凭据。集成安全性将传递您登录帐户的凭据,如果数据库与应用程序位于同一台PC上,则这是正常的方法。

<add name="cn" connectionString="Data Source=HCL;Initial Catalog=GS;User Id=YOURSQLUSERNAME;Password=YOURSQLPASSWORD;"/>

有关更多连接字符串示例,请参阅http://www.connectionstrings.com/

答案 1 :(得分:1)

我认为“Server”不是连接字符串的有效属性。请尝试使用“数据源”。 “集成安全性”也应设置为SSPI:

<add name="cn" connectionString="Data Source=HCL;Initial Catalog=GS;Integrated Security=SSPI"/>

<强>更新 我刚刚注意到你还使用了“数据库”。这应该是“初始目录”。

<强> UPDATE2: 使用.udl文件创建连接字符串有一个巧妙的技巧。如果您创建一个名为“something.udl”的空文件并双击它,Windows将打开一个很好的对话框来定义连接。若要为SQL Server创建连接字符串,请在“提供程序”选项卡上选择“Microsoft OLEDB Provider for SQL Server”,然后在“连接”选项卡上填写服务器名称,登录凭据和数据库名称。完成测试连接并单击“确定”。

关闭对话框后,您可以将.udl文件拖到记事本或Visual Studio中,您将看到.udl文件实际上包含一个可供您使用的连接字符串(请注意,如果您希望使用该连接在.NET中使用SqlConnection的字符串,您必须删除字符串的“Provider = SQLOLEDB.1”部分。

答案 2 :(得分:1)

尝试添加“Integrated Security = SSPI;”或者指定您的UID,Pwd以连接到服务器。您可能会对身份验证感到震惊。

答案 3 :(得分:1)

  • 打开管理工作室并使用SQL Server身份验证连接SQL Server。输入userId和密码进行连接。在连接字符串中使用该用户标识和密码。

    connectionString =“数据源= HCL;初始目录= GS;用户ID = UserId;密码=密码;

  • 用户ID - &gt; UserId您想登录 使用。比如'sa'

  • 密码 - &gt;您的用户密码。

如果您收到错误用户“'yourusername'登录失败,则此链接将有所帮助。这是为了启用用户sa。

SQL Server 2005 "Login failed for user" sa

修改

connectionString="Data Source=HCL;Initial Catalog=GS;Persist Security Info=True;User ID=sa;Password=pass"

此链接可能会有所帮助

sql-network-interfaces-error-26-error-locating-server-instance-specified

答案 4 :(得分:0)

我认为您应该尝试使用trusted_connection = true而不是连接字符串中的集成安全性。

见这里:http://connectionstrings.com/sql-server-2005

第二个原因可能是您有几个数据库实例需要写入连接字符串。