问题1:
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 – 无法打开到 SQL Server 的连接)
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.SqlClient.SqlException: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 – 无法打开到 SQL Server 的连接)
说明:
在本机上运行程序的时候正常,用的是Windows身份验证,当发布到服务器上的时候就出现了上述错误。
解决方法:
1.开启sql2005远程连接功能,开启办法如下:
??????? 配置工具->Sql Server外围应用配置器->服务和连接的外围应用配置器->打开MSSQLSERVER节点下的Database Engine节点,先择“远程连接”,接下建议选择“同时使用TCP/IP和named pipes”,确定后重启数据库服务就可以了。
2.登陆设置改为:Sql Server 和 Windows 身份验证模式,具体设置如下:
??????? SQL Server Management Studio管理器->Windows 身份验证连接服务器->对象资源管理器中选择你的数据服务器->右键->属性->安全性->Sql Server 和 Windows 身份验证模式选中。
3.设置一个Sql Server方式的用户名和密码,具体设置如下:
??????? (1)SQL Server Management Studio管理器->Windows 身份验证连接服务器->对象资源管理器中选择你的数据服务器->展开服务器上的“安全性”->登陆名->在sa帐号上点右键->“选择页”选择常规->更改sa登陆帐号的密码。这样就设置了一个用户名为sa,密码为:sa123456的用户。
??????? (2)“选择页”选择状态->登陆修改为启用
4.数据库连接字符串
??????? 数据库连接字符串有好几种,相信你自己也见过,都被搞晕了
??????? Data Server=.SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password=sa123456
??????? Data Server=服务器名SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password=sa123456
??????? Data Server=localhostSQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password=sa123456
??????? Data Server=.;Initial Catalog=Northwind;User ID=sa;Password=sa123456
??????? Data Server=服务器名;Initial Catalog=Northwind;User ID=sa;Password=sa123456
?????? SQL Server 2008 enterprise的连接串是:
???????Data Server=.;Initial Catalog=Northwind;User ID=sa;Password=sa123456
??????? ……
??????? 到底那种正确?这跟数据库版本有关系,如果是Sql Server 2005 Express版本,则必须要有“SQLEXPRESS”。而且如果这个字符串是定义为一个变量的时候,VS2005还会在“”的下面加个红色的波浪线提示你“S是无法识别的转义序列”,因此如果字符串是定义为一个变量的时候应该写成Server=.\SQLEXPRESS
5.注册Sql Server数据库
??????? 在路径“C:WindowsMicrosoft.NETFrameworkv2.0.50727”下运行“ASPNET_REGSQL”指令,就会出现ASP.NET SQL Server Setup Wizard向导,连续按下两个下一步后就会出现Sql Server注册界面,填入你要注册的数据库参数就注册好了。注册完后会在你的数据库里多几个表(如图):
6.设置数据库连接字符串
??????? 打开IIS->在默认网站或是网站所在的虚拟目录点击右键选择属性->选择ASP.NET选项卡->编辑配置->在“常规”页签编辑“LocalSqlServer”数据库连接字符串:
??????? Data Server=.SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password=sa123456
7.设置web.config文件
??????? 在web.config文件添加如下程序:
<connectionStrings>
<add name=”LocalSqlServer” connectionString=”Data Source=.SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password=sa123456″ providerName=”System.Data.SqlClient”/>
</connectionStrings>
??????? 这样便大功告成了。
下面来测试
??????? 1.宽松的连接测试
??????? 宽松的连接测试使用SqlDataSource
??????? VS2005服务器资源管理器选中数据库点击右键->选择修改连接->填入服务器名->使用Sql Server身份验证填入用户名sa及密码sa123456->选择或输入一个数据库名:Northwind->点击测试连接
??????? 宽松的连接测试连接成功并不能说明数据库就连接OK了,一开始我就是挂在这里,宽松的连接测试测试连接成功,可是始终无法读出数据库的内容到网页里头。
??????? 2.严谨的连接测试
??????? 在VS2005里选择网站菜单->ASP.NET配置进入ASP.NET网站管理工具->选择提供程序->点击AspNetSqlProvider的测试,若测试成功,说明数据库设置完全正确,否则得从头来过好好查查问题在哪里。
问题2:
如何将程序放到服务器上面,并发布
解决方法:
1、利用远程桌面连接(开始-所有程序-附件-通讯)到服务器上面
2、在服务器上创建一个共享文件夹Updata,在本机上面访问Updata(开始运行–\服务器IP地址–回车可以打开服务器共享)
3、将你所用到的SQL SERVER数据库(例如:在本机C:Program FilesMicrosoft SQL ServerMSSQL10.MSSQLSERVERMSSQLDATA 文件夹中Message.mdf)和应用程序放到共享里面
4、登录到服务器的Updata文件夹,将数据库(例如:Message.mdf放到服务器的C:Program FilesMicrosoft SQL ServerMSSQL10.MSSQLSERVERMSSQLDATA下)和程序(例如:可将程序文件夹放到服务器的C:inetpubwwwroot)Copy到相应的位置。
5、设置虚拟目录:打开服务器上的服务器管理器-角色-web服务器(IIS)-Internet信息服务(IIS)管理器-服务器名(比如:Win08)-网站-Default Web Site,右击Default Web Site点击添加虚拟目录,输入别名(如:Message),找到物理路径(就是刚才程序所放的目录下面,注意这里:路径是包含BIN的上面一层),点击确定
6、在Default Web Site下找到别名为Message的目录,右击转换为应用程序(注意是BIN上面一层的那个目录),之后再右击Message 切换到内容视图,右击Default.aspx 浏览 可打开网页。
7、在服务器上打开之后的URL是http://localhost/Message/Default.aspx 其中LocalHost是服务器的IP地址。用本机访问服务器的时候输入http://服务器IP地址/Message/Default.aspx 就OK了。这样我们就可以访问了。(我们还可以在手机的模拟器去浏览网站)