请问怎么实现远程访问数据库

Zdystudent 2009-04-30 09:14:57
供应商给了我一个密码和用户名和服务器IP,
然后我改了web.config里面的Data Source,Uid和Pwd当是老是出现:
用户 '' 登录失败。该用户与可信 SQL Server 连接无关联。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 用户 '' 登录失败。该用户与可信 SQL Server 连接无关联。


然后我在自己的电脑上试,Data Source的值如果是localhost就能够正常连接,如果Data Source的值改为本机的IP地址就会出现:

已成功与服务器建立连接,但是在登录前的握手期间发生错误。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 0 - 管道的另一端上无任何进程。)

请问怎么解决,谢谢
...全文
1131 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2009-04-30
  • 打赏
  • 举报
回复
是否打了补丁
sql2005开启远程连接功能
如果已经设置了 windows与SQL Server混合验证且启用了sa帐户
在开始菜单中的"SQL SERVER 2005"->"Configuration Tools"->"SQL SERVER Configuration Management"中将"SQL SERVER Clinet"中的命名管道(named pipes)打开,然后重启一下SQL SERVER的服务

蓝海D鱼 2009-04-30
  • 打赏
  • 举报
回复
SQLServer安装
安装后 开启TCP/IP
用vs.net2005连接sql server 2005 出现以下错误:在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)

网站的数据库连接语句为:Server=127.0.0.1;uid=sa;pwd=xxx;database=xxx
经测试把server=127.0.0.1改为“server=.”或“server=机器名”,都可以正常连接;
所以只有在用IP时不能连接,经分析,解决方法如下:
1.打开Sql Server 2005 “配置工具” 中的“SQL Server 外围应用配置器”,点击“服务和连接的外围应用配置器”;
2.在出来的界面中点击“Database Engine”中的“远程连接”,把连接方式改为“本地连接和远程连接”中的“同时使用tcp/ip和name pipes”;
3.修改后通过“配置工具”中的“SQL Server Configuration Manager”重启Sql Server 2005服务;
注意:一定要重启Sql Server 2005服务修改才会生效;
SQL Server 外围应用配置器—服务和连接外围配置—database englie—远程连接—启用(远程连接的TCP/IP和named pipes)
SQL Server Configuration Manager—SQL2005网络配置—启用TCP/IP和named pipes
在TCP的协议中把IPALL的端口改为1433,就好了

tanhuajiang 2009-04-30
  • 打赏
  • 举报
回复
开了1433没有
jasondct 2009-04-30
  • 打赏
  • 举报
回复
我遇到这个方法的 解决方式是:
在本机安装数据库客户端, 连接上远程数据库。
代码连接。
搞网站 远程连接数据库 太正常了。
编程有钱人了 2009-04-30
  • 打赏
  • 举报
回复
code=XML]
<add name="ConnectionString" connectionString="server=localhost; database=Hotel;uid=sa;pwd=123456" />
[/code]
路人乙e 2009-04-30
  • 打赏
  • 举报
回复
localhost?
CeShenBeiWang 2009-04-30
  • 打赏
  • 举报
回复
确认你的MSSQL 打过SP4补丁 关键问题

检查你的数据库的认证模式,windows 和 混合模式,需要SA登陆的请选择混合模式。

检查计算机1433连接端口,1434数据端口是否打开

针对sql 2005 进入管理器中“安全”==》“用户”==》双击用户(弹出属性对话框)==》“状态”把状态改成enable,退出管理器重新登录(用户验证模式)

检查你的连接程序的链接地址是否是127.0.0.1 或 {local}

以上操作都不行,重新建立数据库,注意操作系统的网络名最好不要使用默认的关键字,有遇到过网络名是关键字死活连接不上去的情况。
Zdystudent 2009-04-30
  • 打赏
  • 举报
回复
这个事web.config文件内容:


<?xml version="1.0" ?>
<!--
注意: 除了手动编辑此文件以外,您还可以使用
Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
“网站”->“Asp.Net 配置”选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于
\Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<appSettings/>
<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=localhost; Initial Catalog=Hotel;Persist Security Info=Ture;uid=sa;pwd=123456" />
<add name="HotelConnectionString" connectionString="Data Source=localhost;Initial Catalog=Hotel;Integrated Security=True;uid=sa;pwd=123456"
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<!--
设置 compilation debug="true" 将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true。
-->
<compilation debug="true" defaultLanguage="c#"/>
<authentication mode="Forms"/>
<!--
通过 <authentication> 节可以配置 ASP.NET 使用的
安全身份验证模式,
以标识传入的用户。
-->

<!--
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
开发人员通过该节可以配置
要显示的 html 错误页
以代替错误堆栈跟踪。


<error statusCode="403" redirect="EorrorPage.htm" />
<error statusCode="404" redirect="EorrorPage.htm" />
</customErrors>
-->
<trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true"/>
<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
</system.web>
</configuration>
claymore1114 2009-04-30
  • 打赏
  • 举报
回复
上传数据库了吗
zzxap 2009-04-30
  • 打赏
  • 举报
回复
上述错误我遇到两种情况,一种是在打开打开SQL Server 2005时弹出的,另一种是在应用程序连接SQL Server 2005时出现的.归纳了一下,由以下几个原因:

1.数据库引擎没有启动.

有两种启动方式:

(1)开始->程序->Microsoft SQL Server 2005->SQL Server 2005外围应用配置器,在打开的界面单击"服务的连接的外围应用配置器",在打开的界面中找到Database Engine,单击"服务",在右侧查看是否已启动,如果没有启动可单击"启动",并确保"启动类型"为自动,不要为手动,否则下次开机时又要手动启动;

(2)可打开:开始->程序Microsoft SQL Server 2005->配置工具->SQL Server Configuration Manager,选中SQL Server 2005服务中SQL Server(MSSQLSERVER) ,并单击工具栏中的"启动服务"按钮把服务状态改为启动;

使用上面两种方式时,有时候在启动的时候可能会出现错误,不能启动,这时就要查看"SQL Server 2005配置管理器"中的SQL Server 2005网络配置->MSSQLSERVER协议中的VIA是否已启用,如果已启用,则把它禁止.然后再执行上述一种方式操作就可以了.

2.进行远程连接时,是否已允许远程连接.

SQL Server 2005 在默认情况下仅限本地连接.我们可以手动启用远程连接.在上面第一种方式中,找到Database Engine,单击"远程连接",在右侧将"仅限本地连接(L)"改为"本地连接和远程连接(R)",并选中"同时使用TCP/IP和named pipes(B)".

3.如果是远程连接,则还要查看连接数据库的语句是否正确,登录账户是否正确,密码是否正确等.

我在一次局域网内连接数据库时,就要因为连接字符串出了问题,在局域网内一台机子连接另一台机子上数据库时,把server=装有数据库的另一台机子的IP.我在连接数据库时总是出现上面的错误,查了好长时间,后来发现,IP没有正确到传到连接字符串,原来我在连接时,使用的是本地,即127.0.0.1,输入的IP没有传到连接字符串.

使用心得:

因为初装server2005时设置为window登陆验证,后来想尽好多办法也没有改过了,最后是在一个网友的帮助下实现了,但使用sa和密码在vs中老实报上述错误,没办法,只好耐着性子在网络上找,方法大同小异和上面的差不多,按照网上的我一一照做,还是不行,本人急性子,最后心一横,不弄了,重启了电脑,没想到再试竟然可以了,不再报错。太阳tmd微软啊,差掉搞死老子。有时候自己做的完全正确,但结果还是不是自己想要的,这个时候就可以换换脑筋,比如也许重启一下电脑呢,哈哈。有些软件的错误莫名其妙,当时说什么都改不过来,第二天再试的时候它自动好了,奇怪~

我的sql语句是:

Data Source=YONGGESONG\SQLEXPRESS;Initial Catalog=HRManager;User ID=sa;Password=123
zzxap 2009-04-30
  • 打赏
  • 举报
回复
按照默认安装的话,很可能在进行远程连接时报错,通常是错误:"在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) "搜MSDN,上面有一片机器翻译的文章,是在让人难以明白,现在总结如下:明白了SQL Server是个网络数据库就可迎刃而解了,简单的分为下面的集中情况。
1. 数据库引擎没有启动。
有两种启动方式:
(1)开始->程序->Microsoft SQL Server 2005->SQL Server 2005外围应用配置器,在打开的界面单击"服务的连接的外围应用配置器",在打开的界面中找到Database Engine,单击"服务",在右侧查看是否已启动,如果没有启动可单击"启动",并确保"启动类型"为自动,不要为手动,否则下次开机时又要手动启动;
(2)可打开:开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server Configuration Manager,选中SQL Server 2005服务中SQL Server(MSSQLSERVER) ,并单击工具栏中的"启动服务"按钮把服务状态改为启动;
使用上面两种方式时,有时候在启动的时候可能会出现错误,不能启动,这时就要查看"SQL Server 2005配置管理器"中的SQL Server 2005网络配置->MSSQLSERVER协议中的VIA是否已启用,如果已启用,则把它禁止.然后再执行上述一种方式操作就可以了.
2. 是否已经允许远程连接。
这个部分可以简单的分为4个方面,分别是在 SQL Server上启用远程连接、启用SQL Server 浏览服务、在Windows 防火墙中为SQL Server 2005 创建例外和在Windows 防火墙中为“SQLBrowser”创建例外。下面是几个具体的操作方式,摘自MSDN,个人觉得文章的黑体部分应当特别的一起我们的注意。

3. SqlServer账户登陆设置
(1) 登陆设置改为,Sql server and windowsAuthentication方式同时选中,具体设置如下:
manage管理器->windowsAuthentication(第一次用windows方式进去),->对象资源管理器中选择你的数据服务器--右键>属性>security>Sqlserver and windows Authentication方式同时选中.
(2)设置一个Sql server方式的用户名和密码,具体设置如下:
进入manage管理器后,找到服务器下的Security->Logins->sa,右键属性,设置密码为sa(当然也可以设置其他用户名和密码)这样就设置了一个用户名为sa,密码为sa的用户,下次在登陆时,可以用Sql server方式,用户名为sa,密码为:sa的用户进数据库了。
4: 做完上面四步后,这样写连接字符串就可以顺利进入数据库了,
(server=.\\sqlexpress;uid=sa;pwd=sa;database=master");

在使用.NET开发进行时,会遇到使用连接字符串连接SQL Server 2005数据库使用机器名称和localhost都能连接,但是使用IP地址却不能连接的问题,解决的办法是在SQL Server实例上启用本地和远程连接,并且在选择协议的时候使用TCP/IP和命名管道服务即可解决。
  在SQLServer 实例上启用远程连接
1.指向“开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server 外围应用配置器”
2.在“SQL Server 2005 外围应用配置器”页, 单击“服务和连接的外围应用配置器”
3.然后单击展开“数据库引擎”, 选中“远程连接”,在右边选中“本地连接和远程连接”,
再选择要使用的协议,( 这个地方应当启用TCP/IP 和命名管道服务!)单击“应用”,您会看到下消息:
“直到重新启动数据库引擎服务后,对连接设置所做的更改才会生效。”,单击“确定”按钮返回
4.展开“数据库引擎”, 选中“服务”,在右边单击“停止”,等到 MSSQLSERVER 服务停止,
然后单击“启动”,重新启动MSSQLSERVER 服务。

启用 SQLServer 浏览器服务
1.指向“开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server 外围应用配置器”
2.在“SQL Server 2005 外围应用配置器”页, 单击“服务和连接的外围应用配置器”
3.然后单击展开“SQL Server Browser”, 选中“服务”,在右边“启动类型”选择“自动”,
再单击“启动”,单击“确定”按钮返回

在Windows 防火墙中为“SQL Server 2005”创建例外
1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序”
2.在“添加程序窗口”中单击“浏览”
3.然后找到“C:\ProgramFiles\Microsoft Files\Microsoft SQL Server\ MSSQL.1 \MSSQL\Binn\sqlservr.exe”,
单击“确定”返回
注意 : 路径可能会根据 SQL Server 2005 安装不同而不同。 MSSQL.1 是占位符,对应数据库实例ID。
4.对每个需要打开远程访问的SQL Server 2005 实例,重复步骤 1 至 3。

在Windows 防火墙中为“SQLBrowser”创建例外
1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序”
2.在“添加程序窗口”中单击“浏览”
3.然后找到“C:\ProgramFiles\Microsoft Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe”,
单击“确定”返回
注意 : 路径可能会根据 SQL Server 2005 安装不同而不同。
zzxap 2009-04-30
  • 打赏
  • 举报
回复
Uid要有相应数据库的权限Pwd要正确
路人乙e 2009-04-30
  • 打赏
  • 举报
回复
贴你的连接字符串,

Zdystudent 2009-04-30
  • 打赏
  • 举报
回复
供应商给了我一个密码和用户名和服务器IP....是SQL server数据库空间的

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧