ASP.
NET是热门的服务器端开发技术,其开发时首先需要安装.
NETFramework并进行一定的配置工作.
在.
NET3.
5环境下,ASP.
NET技术更加成熟并且增加了许多新的特性.
为了更好地开发ASP.
NETWeb工程,读者需要首先安装VisualStudio2008(以下简称VS2008)和IIS,并对开发环境进行基本配置.
本章讲解VS2008、IIS的安装和基本的网站配置.
1.
1搭建ASP.
NET开发环境在进行ASP.
NET开发时,首先需要安装VS2008作为开发工具.
本节介绍VS2008团队版的安装细节、注意事项与常见的ASP.
NET开发设置,以及IIS的安装、常用配置和使用IIS作为HTTP容器运行发布后的ASP.
NET网站.
实例001安装IIS并配置【实例介绍】在利用ASP.
NET开发Web工程时,需要使用IIS进行站点发布和站点管理.
IIS在WindowsXP和Windows2000环境下需要安装和配置后方能使用.
本例将展示在WindowsXP环境下IIS安装和配置的细节,为读者后期学习ASP.
NET开发站点打好基础.
【开发过程】(1)进入操作系统中的"控制面板"页面,双击"添加或删除程序"组件图标,在弹出的窗口中单击"添加和删除Windows组件"按钮,弹出"Windows组件向导"对话框.
效果如图1.
1所示.
(2)在"Windows组件向导"对话框中选中"Internet信息服务(IIS)"复选框,并在"Internet信息服务(IIS)"对话框中选中所有的IIS服务的子组件复选框,然后单击"确定"按钮,效果如图1.
2所示.
(3)单击"Windows组件向导"对话框中的"下一步"按钮,弹出安装对话框.
安装完成后单击"完成"按钮,效果如图1.
3所示.
(注意:运行安装向导时,可能需要插入WindowsXPProfessional的系统光盘.
(4)完成IIS安装后,打开控制面板中的"管理工具"窗口,然后打开IIS服务器检查IIS运行状态,效果如图1.
4所示.
图1.
1进入"添加和删除Windows组件"选项卡示意图图1.
2"Internet信息服务(IIS)"对话框图1.
3IIS安装完成界面图1.
4IIS运行界面【关键技术解析】在目前的网站开发中使用较为广泛的是IIS6.
0和IIS7.
0版本.
IIS7.
0更为强大,并且支持.
NET3.
5中更多的组件和动态语言库.
但是在一般的ASP.
NET开发中,IIS6.
0更为稳定、成熟、便于学习、较为简单,所以笔者推荐使用IIS6.
0.
(注意:在Windows2003下安装IIS6.
0的过程与WindowsXP下安装IIS6.
0略有不同,请读者仔细阅读安装提示.
【拓展应用】在其他Windows操作系统中安装IIS与本例中的方式大同小异,但是在Vista下安装IIS需要参阅MSDN中关于IIS安装的文章.
新的IIS7.
0支持如PHP、Ruby等新的Web服务器端技术,并且支持新的动态语言脚本调试和部署.
实例002安装并使用VS2008开发ASP.
NET程序【实例介绍】VS2008是使用.
NET3.
5框架的新一代开发工具,VS2008可以使开发人员很容易构建自己的网站、Web应用程序、Web服务等解决方案.
本例将主要介绍VS2008的安装和ASP.
NET开发环境的配置.
【开发过程】(1)将VS2008的安装光盘插入光驱中,弹出如图1.
5所示的对话框.
(2)单击"安装VisualStudio2008"链接,弹出如图1.
6所示的对话框.
图1.
5VS2008安装初始对话框图1.
6VS2008安装对话框(3)单击"下一步"按钮,弹出如图1.
7所示的对话框.
(4)在其中选中"我已阅读并接受许可条款"单选按钮,在"名称"文本框中输入用户名后单击"下一步"按钮,弹出如图1.
8所示的安装选项对话框.
(注意:如果当前电脑已安装了VisualStudio的其他版本,请选择不同磁盘路径下的文件夹安装VS2008,这样可以有效地防止不可预期的版本冲突.
(5)在图1.
8所示的安装对话框中单击"安装"按钮,弹出如图1.
9所示的安装进程对话框.
(注意:不同版本的VS2008安装界面会略有不同.
图1.
7VS2008安装协议许可对话框图1.
8VS2008安装选项对话框图1.
9VS2008安装进程对话框(6)当安装进程结束后,不需要进行任何的其他设定就可以直接进行ASP.
NET开发了.
【拓展应用】对于开发人员而言,安装VS2008TeamSuite(团队协作版)是最好的选择.
因为安装VS2008TeamSuite可以使用更为强大的源代码管理功能,并且可以直接构建VSTS测试.
VS2008支持调试.
NETFrameWork源代码,读者可以参阅MSDN获取更多的VS2008使用技巧.
1.
2ASP.
NET网站配置文件Web.
Config文件是一个XML文本文件,用来储存ASP.
NETWeb应用程序的配置信息(如最常用的设置ASP.
NETWeb应用程序的身份验证方式),它可以出现在应用程序的每一个目录中.
通过VS2008新建一个Web应用程序后,默认情况下会在根目录下自动创建一个默认的Web.
Config文件,包括默认的配置设置,所有的子目录都继承它的配置设置.
如果需要修改子目录的配置设置,可以在该子目录下新建一个Web.
Config文件.
它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置.
在运行对Web.
Config文件的修改时,不需要重启就可以生效(processModel节点例外).
当然Web.
Config文件是可以扩展的.
可以自定义新配置参数并编写配置节处理程序以对它们进行处理.
实例003在Web.
Config文件中添加数据库连接配置【实例介绍】使用Web.
Config文件配置数据库连接,可以在网站部署时修改连接字符串而不需要修改任何程序代码.
本例将介绍如何在Web.
Config文件中配置常用的数据库连接.
【开发过程】(1)新建一个网站,打开Web.
Config文件,在connectionStrings配置节点下添加add节点进行数据库连接配置.
代码如下:(注意:可以使用"ASP.
NET配置工具"进行数据库连接字符串的配置,或使用IIS中的配置项配置数据库连接.
(2)在设计器中双击Default.
aspx页面空白处,并Page_load事件处理函数中,添加访问配置的连接字符串代码.
代码如下:01protectedvoidPage_Load(objectsender,EventArgse)02{03stringname="SqlConnection";//数据库连接字符串键名04//连接字符串05stringconnectionString=ConfigurationManager.
ConnectionStrings["SqlConnection"].
ConnectionString;06//数据提供程序名称07stringproviderName=ConfigurationManager.
ConnectionStrings["SqlConnection"].
ProviderName;08StringBuilderbuilder=newStringBuilder(string.
Empty);09builder.
AppendFormat("连接字符串键名:{0}",name);10builder.
AppendFormat("数据库连接字符串:{0}数据提供程序名称:{0}(2)在Default.
aspx页面的Page_load事件处理函数中,添加访问自定义配置节的代码如下:01protectedvoidPage_Load(objectsender,EventArgse)02{03stringappSetting=string.
Format("KEY:{0}VALUE:{1}",04//通过System.
Configuration.
ConfigurationManager类的AppSettings属性,获取自定义配置信息05"SmtpPort",CM.
AppSettings["SmtpPort"]);06this.
Response.
Write(appSetting);07}(注意:上面代码第5行中使用CM作为System.
Configration.
ConfigrationManager静态类的别名.
(3)运行网站,页面已经输出了自定义配置节中的值,效果如图1.
11所示.
【关键技术解析】在appSettings节点下通过add子节点可以添加多个自定义配置节点,add节点具有两个非常重要的属性,如下所示.
key属性:即自定义配置节的键名,可以任意赋值.
在后台访问自定义配置节点的值时,需要使用该键名获取.
value属性:即自定义配置节的值.
(注意:在appSettings节点中添加的自定义配置信息,可以在key、value属性中任意赋值.
【拓展应用】appSettings节点可以通过configSource属性设置外部配置文件路径,防止由于更新自定义配置节点导致网站重新编译.
appSettings节点中的自定义配置节不宜过多,不宜将连接字符串等配置信息配置于appSettings节点中.
在Web.
Config文件配置完成后,应使用加密工具对Web.
Config文件进行加密,防止Web.
Config文件被恶意修改.
实例005在Web.
Config文件中配置Session状态管理【实例介绍】Web.
Config文件提供了用于配置当前站点的Session的sessionState节点,sessionState节点需要手动添加至Web.
Config文件中.
在本例中将演示使用sessionState节点配置Session超时等设置,以及这些Session设置对网站运行期的影响.
【开发过程】(1)新建网站,在Web.
Config文件中添加sessionState节点.
sessionState节点是System.
Web节点的子节点,所以必须将sessionState节点添加至System.
Web节点下,代码如下:(注意:在VS2008创建的网站中,Web.
Config文件中已不存在sessionState节点.
sessionState节点已被配置在MachineConfig.
config文件中了.
(2)修改sessionState配置节点如下:运行网站,发现网址中出现了SessionID,网址如下:HTTP://localhost:2860/session/(S(41ozto55iz2xsm45ginuvujn))/default.
aspx(3)再次修改sessionState配置节点如下:再次运行网站,发现网址中SessionID部分不见了,网址如下:HTTP://localhost:2860/session/Default.
aspx(4)在Default.
aspx页面page_load事件处理函数中,添加写入Session项的代码,代码如下所示:protectedvoidPage_Load(objectsender,EventArgse){this.
Session.
Add("Demo","Demo");}(5)运行网站,发现页面中输出了错误提示消息,如图1.
12所示.
在步骤(3)中将Web.
Cofing中sessionState节点的mode属性设为Off,表示禁用了Session项,在页面中添加Session项、获取Session项都会引发该错误.
(注意:sessionState节点的其他设置项一般使用率较低,请读者仔细阅读MSDN中的相关章节.
【关键技术解析】sessionState节点配置的基本格式如下:在sessionState节点中必须配置mode属性,mode属性的值及各项值的说明如表1.
1所示.
表1.
1mode属性值及说明值说明Off指示会话状态没有启用InProc指示本地存储会话状态StateServer指示在远程服务器上存储会话状态SQLServer指示在MicrosoftSQLServer上存储会话状态(注意:mode属性的默认值为InProc.
在sessionState节点中还有很多选填属性,如表1.
2所示.
表1.
2sessionState中的选填属性属性说明cookieless指定是否应该使用没有Cookie的会话来标识客户端会话,布尔值属性.
默认值为falsesqlConnectionString为SQLServer指定连接字符串.
例如,"datasource=localhost;IntegratedSecurity=SSPI;InitialCatalog=northwind".
当mode为SQLServer时,需要使用此属性stateNetworkTimeout当使用StateServer模式存储会话状态时,指定在会话被放弃前Web服务器和状态服务器之间的TCP/IP网络连接处于空闲状态的秒数.
默认值是10timeout指定会话在被放弃前处于空闲状态的分钟数.
默认值是20stateConnectionString指定远程存储会话状态所在的服务器名称和端口.
例如,"tcpip=127.
0.
0.
1:42424".
当mode为StateServer时,需要使用此属性(注意:当设置sessionState节点的cookieless属性为true时,用户SessionID将成为URL地址的一部分.
【拓展应用】使用VS2008新建的网站中Web.
Config文件并没有sessionState节点,可以自行添加至Web.
Config文件中.
sessionState设置被存放在MachineConfig中.
一般情况下将需要使用特定的Session配置项的页面放在特定文件夹中,在特定文件夹中添加Web.
Config文件配置sessionState项.
实例006在Web.
Config文件中限制用户请求大小【实例介绍】在Web.
Config文件中可以配置客户端请求大小、请求超时时间等配置项.
在默认情况下,客户端请求大小最多为4M,即客户端上传文件或提交数据时数据或文件大小不可超过4M.
通过配置请求大小、请求超时可以有效的控制用户上传文件的大小和时间.
【开发过程】新建网站,在Web.
Config文件中添加HttpRuntime节点,并设置相关属性.
代码如下:在以上设置中,客户端请求服务器的数据提交不能超过4096K字节,请求超时时间为90秒,服务器请求排队个数不能超过1000个.
【关键技术解析】设定请求大小或请求超时等配置可以修改HttpRuntime节点中的属性值实现,HttpRuntime节点的主要属性如下所示.
maxRequestLength:客户端请求服务器的数据容量最大值,单位为KB.
默认为4096即4096KB(4MB).
可以修改该值使用户可以传输更大的数据或文件.
executionTimeout:客户端请求服务器的有效时间,单位为秒.
默认值为90秒,如果在90秒内客户端仍无法连接至服务器端,即请求超时.
appRequestQueueLimit:当前站点的排队请求的最大个数,当排队的请求数超过此设置规定的限制时,传入的请求将被拒绝,并提示"503--服务器太忙"错误.
【拓展应用】通过设定请求大小,可以限制用户上传文件、传输文件时的文件大小.
例如在博客站点开发时,可以有效地防止用户上传头像图片过大.
通过设定超时时间、请求排队数,可以有效地优化网站的访问效率.
但是对超时时间、请求排队数的修改,必须建立在长期的网站负载数据的分析之上.
实例007在Web.
Config文件中配置错误跳转页【实例介绍】在访问站点或使用站点功能时,会出现误操作或网站中的某些页面被删除等情况.
为了提高客户体验,需要在网站中提供错误页面的跳转给予用户友好的信息提示.
本例将介绍常用错误的错误页面跳转配置.
【开发过程】(1)新建网站,在网站中添加两个HTML页面:GenericErrorPage.
htm页面、404Error.
htm页面.
在GenericErrorPage.
htm中添加"对不起,出错了"的文本.
(2)在404Error.
htm前台代码的body元素中添加以下代码:对不起,出错了(3)修改Web.
Config文件中的配置,添加customErrors节点并设置相应的属性.
代码如下:在这里,设置出现一般性错误跳转至GenericErrorPage.
htm页面,出现404错误时跳转至404Error.
htm页面.
(4)在Default.
aspx页面加载事件处理函数中添加一段出现逻辑错误的代码,来测试错误跳转.
代码如下所示:01protectedvoidPage_Load(objectsender,EventArgse)02{03inti=0,j=1;04intk=j/i;//在这里将抛出异常}(5)设定Default.
aspx页面为起始页,运行网站发现跳转至GenericErrorPage.
htm页面,效果如图1.
13所示.
当运行Default.
aspx页面时,由于默认的逻辑错误会跳转至GenericErrorPage.
htm页面.
现在修改浏览器中的网址,请求一个当前网站中不存在的页面地址,发现跳转404Error.
htm页面,效果如图1.
14所示.
图1.
13默认错误页跳转图1.
14404错误页面请求一个当前网站中不存在的页面地址会导致404错误,则自动跳转至404Error.
htm页面.
【关键技术剖析】错误页面跳转配置可以在Web.
Config文件中添加customErrors节点,并通过设置相应的属性实现,customErrors节点重要的属性如下所示.
defaultRedirect:可选的属性.
指定出错时将浏览器定向到的默认URL.
如果未指定该属性,则显示一般性错误.
mode:必选的属性.
指定是启用或禁用自定义错误,还是仅向远程客户端显示自定义错误.
可以拥有以下几个值.
On,指定启用自定义错误.
如果未指定defaultRedirect,用户将看到一般性错误.
Off,指定禁用自定义错误.
这允许显示标准的详细错误.
RemoteOnly,指定仅向远程客户端显示自定义错误.
并且向本地主机显示ASP.
NET错误.
这是默认值.
【拓展应用】使用错误跳转配置可以很轻松地配置各项错误处理页,可以有效地提高用户体验.
OneTechCloud发布了本月促销信息,全场VPS主机月付9折,季付8折,优惠后香港VPS月付25.2元起,美国CN2 GIA线路高防VPS月付31.5元起。这是一家2019年成立的国人主机商,提供VPS主机和独立服务器租用,产品数据中心包括美国洛杉矶和中国香港,Cera的机器,VPS基于KVM架构,采用SSD硬盘,其中美国洛杉矶回程CN2 GIA,可选高防。下面列出部分套餐配置信息。美国CN...
NameSilo是通过之前的感恩节优惠活动中认识到这家注册商的,于是今天早上花了点时间专门了解了NameSilo优惠码和商家的详细信息。该商家只销售域名,他们家的域名销售价格还是中规中矩的,没有像godaddy域名标价和使用优惠之后的价格悬殊很大,而且其特色就是该域名平台提供免费的域名停放、免费隐私保护等功能。namesilo新注册域名价格列表,NameSilo官方网站:www.namesilo....
IntoVPS是成立于2004年的Hosterion SRL旗下于2009年推出的无管理型VPS主机品牌,商家提供基于OpenStack构建的VPS产品,支持小时计费是他的一大特色,VPS可选数据中心包括美国弗里蒙特、达拉斯、英国伦敦、荷兰和罗马尼亚等6个地区机房。商家VPS主机基于KVM架构,最低每小时0.0075美元起($5/月)。下面列出几款VPS主机配置信息。CPU:1core内存:2GB...