免费论文查重: 大雅 万方 维普 turnitin paperpass

研讨失败ASP.NETSQLServer登录失败处理

最后更新时间:2024-02-18 作者:用户投稿原创标记本站原创 点赞:16391 浏览:71465
论文导读:Server(SQLEXPRESS)”是否启动,这是关键所在,如果没启动,后面应用程序与数据库相关的配置都无法进行。在服务启动以后,可以利用aspnet_reg-sql.exe工具来创建SQLServer数据库,通常用这个工具来自定义数据库名。在连接服务器的时候,一定要指定关键字“SQLEXPRESS”,也就是在服务器名后面加上“/SQLEXPRESS”。部分截
【摘 要】ASP.NET SQL Server是微软提供的重要软件包,它能在中小型软件系统中快速建立数据端。掌握其特点和配置方法是应用的基础,合理地使用微软提供的登录控件能为开发人员降低成本。
【关键词】ASP.NET配置;ASP.NET SQL Server;部署;登录失败
ASP.NET SQL Server是微软Visual Studio 2005和2008体系中的重要软件包,在这个软件包中,微软提供了一系列的“特色”服务,如:成员资格、配置文件、角色管理、个性化设置等。当用户打开VS2008的UI界面后,在左侧工具箱“登录”工具栏下会看到7个控件,它们都需要ASP.NET SQL Server的支持才能使用。如果我们能够合理地使用微软提供的登录控件能为开发人员降低成本。其操作过程如下:
一、准备
Visual Studio 2008在安装完成以后都会安装SQL Server 2005部分组件,并创建SQL Server数据库服务器。在“程序”-“Microsoft SQL Server 2005”-“配置工具”程序组中,一共有三个配置工具,其中“SQL Server配置管理器”用于调整数据库服务器的启动情况和支持的协议,可设置“SQL Server(SQLEXPRESS)”服务到自启动状态和“TCP/IP”协议为启用状态。最后在系统服务列表上检查“SQL Server(SQLEXPRESS)”是否启动,这是关键所在,如果没启动,后面应用程序与数据库相关的配置都无法进行。
在服务启动以后,可以利用aspnet_reg-
sql.exe工具来创建SQL Server数据库,通常用这个工具来自定义数据库名。在连接服务器的时候,一定要指定关键字“SQLEXPRESS”,也就是在服务器名后面加上“/SQLEXPRESS”。部分截图如下:
二、配置
在保证“SQL Server(SQLEXPRESS)”服务准备就绪以后,就可以开始配置数据库具体内容。点击解决方案管理器下面最右边的ASP.NET配置按钮生成数据库文件。具体过程:首先进入“ASP.NET网站管理工具”页面,然后点击“安全”链接,选择身份验证类型为:“通过Internet”,也就是Forms验证方式。最后保存结果并关闭工具。在解决方案管理器的列表上点击“App_Data”目录,刷新文件夹就会看到这个目录下生成了两个新文件:数据库主文件ASPNETDB.MDF和一个日志文件。系统会在数据库文件中自动添加11个表、9个视图、55个存储过程。
直接双击数据库文件就会打开“服务器资源管理器”界面,你就像看到一个精简版的SQL Server 2005企业管理器,在这里可以完成数据库的绝大部分操作。表、视图、触发器、存储过程、函数等基本操作在这里一个都不少。可以这样说,ASP.NET SQL Server是微软精心为中小型企业用户准备的随身利器。
三、部署
在产品的部署阶段,当数据库文件随同编译好的文件复制到IIS服务器后,配置好虚拟目录就完成了产品发布。当有用户访问数据库的时候,系统会自动将ASPNETDB.MDF数据库文件和日志文件附加到安装有SQL Server 2005服务的服务器中。因为设计过程中用到了部分登录控件,也有很多用户自己设计的数据表读写模块,一般都会碰到登录失败或数据表无法读取的错误。下面是作者的经历和解决过程。
学生刚刚做完ASP.NET课程设计,我想把收集上来的作品在教学网站上做个展示。可是当我把虚拟目录建好预备预览的时候碰到麻烦,用VS2008自带的Login控件制作的登录界面登录,即使用户名和正确也无法登陆,总是提示:“您的登录尝试不成功。请重试。”。这些作品学生在调试的时候都没问题的啊,为什么发布以后就出问题了呢?
开始在网上到处搜索解决问题的方法,CSDN有好多这方面的技术贴,就是不能解决问题,看来只能自己想办法了。
首先,我检查的是数据库是否正确连接。在网站虚拟目录的Asp.net配置的“常规”项中发现有2个数据库连接字符串:LocalSqlServer和ConnectionString,一个是系统默认的本地SqlServer数据库连接串,一个是手工建立的数据库连论文导读:,系统会把您的数据库文件自动附加到数据库系统中,系统是绝对不允许有两个名字相同的数据库存在于同一个SqlServer中。(2)发布后的数据库,必须要让匿名用户也能操作数据库。所以请设置数据库文件所在的目录(App_Data)的目录安全,让Everyone组用户能对这个目录有读写的权限。在部署产品的时候,如果默认的本地数据库连接串在
接串。成员资格和角色使用的数据库连接串是LocalSqlServer。把数据库连接串换成ConnectionString后再测试竟然成功通过。
产生错误的罪魁祸首竟然是数据库连接串。因为几个“登录”控件(含Login控件)的默认数据库连接串是LocalSqlServer,当系统离开本地测试环境发布到IIS中,LocalSqlServer中标记的数据库连接参数就会失效。只有在配置IIS的时候修改登陆控件的连接串才能解决问题。当然,也可以手工方式修改Web.config文件的对应配置节。
下面是解决问题的过程截图:

1.在IIS的虚拟目录上点击右键弹源于:论文库www.7ctime.com

出配置界面,然后点击有下角的“编辑配置”按钮,进入修改Web.config内容的程序。
2.检查“常规”标签下的2个数据库连接,第一是默认数据库连接串LocalSqlServer,
后面一个是手工建立的数据库连接串Connec-
tionString。
3.切换到“身份验证”标签,然后分别依次点击两个“管理提供程序”按钮,修改它们验证的时候所使用的数据库连接串。
4.进入“提供程序设置”界面。将右边列表里的第一项ConnectionStringName的值全部修改成手工建立的连接串“Connec-
tionString”。分别如下图所示:
到这里再测试就大功告成了。最后注意的两点:(1)如果您有多个相同数据库名(ASPNETDB.MDF)的程序发布在同一个网站,如:很多学生的作品要展示在同一网站,需要修改数据库默认名称。例如:把ASPNETDB.MDF改为ASPNETDB9.MDF(Log文件也要改)。因为在执行程序的时候,系统会把您的数据库文件自动附加到数据库系统中,系统是绝对不允许有两个名字相同的数据库存在于同一个SqlServer中。(2)发布后的数据库,必须要让匿名用户也能操作数据库。所以请设置数据库文件所在的目录(App_Data)的目录安全,让Everyone组用户能对这个目录有读写的权限。
在部署产品的时候,如果默认的本地数据库连接串在发布以后不能用,则可以在Web.config中另外建立一个指向同一个数据库连接串。如果没有建立自己的连接串,作品发布以后就无法使用登录控件,这也许是很多人不喜欢微软力推的“登录与角色”控件而宁愿自己去编写一套登录验证程序原因吧。其实,在深入了解ASP.NET SQL Server的特点以后,“微软帝国”提供的这个软件包还是很好用的,能花最小的代码来达到相同的功能,何乐而不为呢。
参考文献:
王云鹏.C#新手开发实例演战[M].中国铁道出版社,2009.
章立民.ASP.NET AJAX经典范例168 VC#版[M].机械工业出版社,2007.
[3]Adam Calderon,Joel Rumerman.ASP.NET AJAX服务器控件高级编程[M].机械工业出版社,2009.