在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接

来源:互联网 发布:假面骑士555知乎 编辑:程序博客网 时间:2024/04/29 12:21

 错误:"在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) "





       上述错误我遇到两种情况,一种是在打开打开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没有传到连接字符串.

链接本地数据库时可以用下面的web.config配置文件

<configuration>
 <appSettings>
  <add key="ConnectionString" value="server=.Localhost; database=DataBaseName;UID=sa;Password=''"/>
  <add key="ExcelConnection" value ="server=localhost; database=xls文件的路径"/>
  <add key ="SqlConnectionString" value ="server=数据库的实例名(computerName/InstanceName); database=DataBaseName; Integrated Security=SSPI"/>
  <add key ="RemoteSqlConnectionString" value="server=IP;database=DataBaseName; uid=sa;password=' ' "/>
  <!--
  连接本地数据库,统计访问信息!
  -->
  <add key="VisitConnectionString" value ="server=数据库的实例名(computerName/InstanceName);; database=DataBaseName; Integrated Security=SSPI"/>
  <!--<add key="VisitConnectionString" value="data source=IP;initial catalog=DataBaseName;user id=sa;password= " />-->
  <!--<add key ="SqlConnectionString" value ="server=local; database=MedOrg; Integrated Security=SSPI"/>-->
  <add key="XlsConnection" value="server=localhost;Provider=Microsoft.JET.OLEDB.4.0;Extended Properties=Excel 8.0;hdr=yes;imex=1 ;data source=FILE_Path.xls"/>
 </appSettings>
 <connectionStrings>
  <!--<add name="ConnectionString" connectionString="data source =; initial catalog=DataBaseName"/>-->
 </connectionStrings>