试下 下面的 看 用VS数据库连接建立连接出现如下错误: 在建立与服务器连接时出错。在连接到SQL Server 2005 时,在默认的设 置下SQL Server不允许远程连接可能会导致此失败 error:40 无法打开 到SQL Server的连接连接失败,解决方法如下: 去 http://www.microsoft.com/downloads/details.aspx?Fa ... 6E&displaylang=en#filelist 下载一个SQLServer2005_SSMSEE.msi安装,这是一个manage管理器,微软的官方网站有 下,安装好manage管理器后,在程序中连接sqlserver2005,下面几点是要注意的。 1. 开启sql2005远程连接功能,开启办法如下, 配置工具- >sql server外围应用配置器- >服务和连接的外围应用配置器- >打开MSSQLSERVER节点下的Database Engine 节点,先择 "远程连接 ",接下建议选择 "同时使用TCP/IP和named pipes ",确定后,重启数据库服务就可以了. 2.登陆设置改为,Sql server and windows Authentication方式同时选中,具体设置如下: manage管理器- >windows Authentication(第一次用windows方式进去),- >对象资源管理器中选择你的数据服务器--右键 >属性 >security >Sql server and windows Authentication方式同时选中. 3:设置一个Sql server方式的用户名和密码,具体设置如下: manage管理器->windows Authentication >new query >sp_password null,'sa123456','sa' 这样就设置了一个用户名为sa ,密码为:sa123456的用户,下次在登陆时,可以用Sql server方式, 用户名为sa ,密码为:sa123456的用户进数据库了. 4: 做完上面三步后,这样写连接字符串就可以顺利进入数据库了, (server=.\\sqlexpress;uid=sa;pwd=sa123456;database=master "); 后来用这个管理器才发现,正确的Server名是这样的,机器名\SQLEXPRESS而不是LOCALHOST,127.0.0.1,FANCYBOY(机器名)比如我的是这样的
ASP.NET 连接 SQL Express SQL Express 是VS2005自带的SQL Server,相当于MSDE的2005版本。关于SQL Express的详细介绍,可参考微软官方网页 :http://www.microsoft.com/china/msdn/express/sql.aspx。为了方便管理数据库,可以下载Management Studio Express (集成了Enterprise Manager 与Query Analyzer的管理工具): http://msdn.microsoft.com/vstudio/express/sql/download/SQL Express的实例名默认为SQLEXPRESS,因此其实SQL Server服务的命名应为machinename/SQLEXPRESS. 由于SQL2005/Express对数据库引擎及数据连接控制作了较大的改动,因此在连接SQLEXPRESS的时候有些地方需要注意:1. SQL Express加强了对远程连接的控制,默认情况下远程控制是关闭的。要打开远程连接,可以通过SQL Server配置工具"SQL Server Surface Area Configuration"->打开"Surface Area Configuration for Services and Connections"->选择SQLEXPRESS->Database Engine->Remote Connections->选择"Using both TCP/IP and named pipes". 这样等同于在"SQL Server Configuration Manager里启用TCP/IP及Named Pipes。关于这两个网络协议,可以参考: 选择网络协议。如果需要用SQL 认证进行连接,请将该实例的认证方式改为SQL Server and Windows Authentication Mode (在Management Studio里查看该实例Propertyies->Security)2. 确认客户端机器启用了相应的网络协议。点击Start->Run->cliconfg->配置相应网络协议3. 确认SQL Server Brower服务正在运行。这个服务作用是监听传入的SQL Server服务请求并提供本机已安装的SQL Server实例信息。如果这个服务没启动,那么以实例名作为Data Source的远程连接请求将不能被正确映射到相应的实例服务上(详见SQL Server Browser服务)4. 检查客户端与SQL服务器之间的通信。由于Named Pipes是封装在TCP/IP协议之上的,首先要确认两台机器之间的TCP/IP通信正常。另外,需要用machinename/SQLEXPRESS的方式作为Data Source的话,要确认machinename可以被正确解析(使用ping 命令,最保险的方法是修改C:\WINDOWS\system32\drivers\etc\hosts,加上主机名与IP的映射)。然后对于使用TCP/IP网络协议的连接,可以用telnet xxx.xx.xxx.xx yyyy的方式检查客户端与SQL Server服务端口之间的通信。yyyy表示SQL Server服务监听的TCP/IP端口,可以查看SQL Server ERRORLOG 来得到(可用外部存储过程xp_readerrorlog);对于使用Named Pipes的连接,由于其基于进程间通信(IPC)机制,则要保证登录客户端的Windows帐号有访问SQL服务器IPC$共享的权限 (可使用net view \\servername及net use \\servername\\IPC$ 来测试)。另外,有时候会出现使用Named Pipes的时Windows Authentication连接失败而SQL Authentication连接成功的情况。由于Named Pipes一定是使用NTLM认证方式的 (无论Windows系统认证方式是Kerberos还是NTLM), 因此在不需要Kerberos认证的情况下可以试着将Windows系统认证改为NTLM (运行cscript c:\Inetpub\AdminScripts\adsutil.vbs set w3svc/1/root/NTAuthenticationProviders "NTLM")。详细情况可以参见微软技术支持文档。5. 使用well formed连接字符串。可以参考 www.connectionstrings.com。.NET 2.0的SqlConnection.ConnectionString有一个针对SQL Express的Property--User Instance。注意这个Property只支持SQL Express,如果对其它版本的SQL Server 连接中使用这个Property是不行的。Tips: 在Data Source属性中可以强制指定网络协议,方法是 tcp:xxx.xx.xxx.xx,yyyy或np:machinename/SQLEXPRESS。另外连接SQL Express的时候可能会碰到一个比较令人费解的异常: An attempt to attach an auto-named database for file C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\WebSites\WebSite1\App_Data\aspnetdb.mdf failed. A database with the same name exists, or specified file cannot be Opened, or it is located on UNC share.
用VS数据库连接建立连接出现如下错误:
在建立与服务器连接时出错。在连接到SQL Server 2005 时,在默认的设 置下SQL Server不允许远程连接可能会导致此失败 error:40 无法打开 到SQL Server的连接连接失败,解决方法如下:
去
http://www.microsoft.com/downloads/details.aspx?Fa ... 6E&displaylang=en#filelist
下载一个SQLServer2005_SSMSEE.msi安装,这是一个manage管理器,微软的官方网站有 下,安装好manage管理器后,在程序中连接sqlserver2005,下面几点是要注意的。
1. 开启sql2005远程连接功能,开启办法如下,
配置工具- >sql server外围应用配置器- >服务和连接的外围应用配置器- >打开MSSQLSERVER节点下的Database Engine 节点,先择 "远程连接 ",接下建议选择 "同时使用TCP/IP和named pipes ",确定后,重启数据库服务就可以了.
2.登陆设置改为,Sql server and windows Authentication方式同时选中,具体设置如下: manage管理器- >windows Authentication(第一次用windows方式进去),- >对象资源管理器中选择你的数据服务器--右键 >属性 >security >Sql server and windows Authentication方式同时选中.
3:设置一个Sql server方式的用户名和密码,具体设置如下:
manage管理器->windows Authentication >new query >sp_password null,'sa123456','sa'
这样就设置了一个用户名为sa ,密码为:sa123456的用户,下次在登陆时,可以用Sql server方式,
用户名为sa ,密码为:sa123456的用户进数据库了.
4: 做完上面三步后,这样写连接字符串就可以顺利进入数据库了,
(server=.\\sqlexpress;uid=sa;pwd=sa123456;database=master ");
后来用这个管理器才发现,正确的Server名是这样的,机器名\SQLEXPRESS而不是LOCALHOST,127.0.0.1,FANCYBOY(机器名)比如我的是这样的
SQL Express 是VS2005自带的SQL Server,相当于MSDE的2005版本。关于SQL Express的详细介绍,可参考微软官方网页 :http://www.microsoft.com/china/msdn/express/sql.aspx。为了方便管理数据库,可以下载Management Studio Express (集成了Enterprise Manager 与Query Analyzer的管理工具): http://msdn.microsoft.com/vstudio/express/sql/download/SQL Express的实例名默认为SQLEXPRESS,因此其实SQL Server服务的命名应为machinename/SQLEXPRESS. 由于SQL2005/Express对数据库引擎及数据连接控制作了较大的改动,因此在连接SQLEXPRESS的时候有些地方需要注意:1. SQL Express加强了对远程连接的控制,默认情况下远程控制是关闭的。要打开远程连接,可以通过SQL Server配置工具"SQL Server Surface Area Configuration"->打开"Surface Area Configuration for Services and Connections"->选择SQLEXPRESS->Database Engine->Remote Connections->选择"Using both TCP/IP and named pipes". 这样等同于在"SQL Server Configuration Manager里启用TCP/IP及Named Pipes。关于这两个网络协议,可以参考: 选择网络协议。如果需要用SQL 认证进行连接,请将该实例的认证方式改为SQL Server and Windows Authentication Mode (在Management Studio里查看该实例Propertyies->Security)2. 确认客户端机器启用了相应的网络协议。点击Start->Run->cliconfg->配置相应网络协议3. 确认SQL Server Brower服务正在运行。这个服务作用是监听传入的SQL Server服务请求并提供本机已安装的SQL Server实例信息。如果这个服务没启动,那么以实例名作为Data Source的远程连接请求将不能被正确映射到相应的实例服务上(详见SQL Server Browser服务)4. 检查客户端与SQL服务器之间的通信。由于Named Pipes是封装在TCP/IP协议之上的,首先要确认两台机器之间的TCP/IP通信正常。另外,需要用machinename/SQLEXPRESS的方式作为Data Source的话,要确认machinename可以被正确解析(使用ping 命令,最保险的方法是修改C:\WINDOWS\system32\drivers\etc\hosts,加上主机名与IP的映射)。然后对于使用TCP/IP网络协议的连接,可以用telnet xxx.xx.xxx.xx yyyy的方式检查客户端与SQL Server服务端口之间的通信。yyyy表示SQL Server服务监听的TCP/IP端口,可以查看SQL Server ERRORLOG 来得到(可用外部存储过程xp_readerrorlog);对于使用Named Pipes的连接,由于其基于进程间通信(IPC)机制,则要保证登录客户端的Windows帐号有访问SQL服务器IPC$共享的权限 (可使用net view \\servername及net use \\servername\\IPC$ 来测试)。另外,有时候会出现使用Named Pipes的时Windows Authentication连接失败而SQL Authentication连接成功的情况。由于Named Pipes一定是使用NTLM认证方式的 (无论Windows系统认证方式是Kerberos还是NTLM),
因此在不需要Kerberos认证的情况下可以试着将Windows系统认证改为NTLM (运行cscript c:\Inetpub\AdminScripts\adsutil.vbs set w3svc/1/root/NTAuthenticationProviders "NTLM")。详细情况可以参见微软技术支持文档。5. 使用well formed连接字符串。可以参考 www.connectionstrings.com。.NET 2.0的SqlConnection.ConnectionString有一个针对SQL Express的Property--User Instance。注意这个Property只支持SQL Express,如果对其它版本的SQL Server 连接中使用这个Property是不行的。Tips: 在Data Source属性中可以强制指定网络协议,方法是 tcp:xxx.xx.xxx.xx,yyyy或np:machinename/SQLEXPRESS。另外连接SQL Express的时候可能会碰到一个比较令人费解的异常:
An attempt to attach an auto-named database for file C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\WebSites\WebSite1\App_Data\aspnetdb.mdf failed. A database with the same name exists, or specified file cannot be Opened, or it is located on UNC share.
先说明环境,本机win2003,vs2005, sql2005,iis6.0,
其次,我的网站程序本身是没有问题的(可以确定)
因为网站一直运行都好好的,直到升级了一个叫华众的域名主机管理系统后才出现的问题.如果把数据库附加到管理器,程序是可以运行的,但是用slqexpress的方式就会出现
"用户没有执行此操作的权限"的问题