aspnet上传文件到服务器
A. 关于asp.net 的几个名词解释,求助。。
1.Request对象
作用是与客户端交互,收集客户端的Form、Cookies、超链接,或者收集服务器端的环境变量。
request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。客户端可通过HTML表单或在网页地址后面提供参数的方法提交数据,然后通过request对象的相关方法来获取这些数据。request的各种方法主要用来处理客户端浏览器提交的请求中的各项参数和选项。
Request对象的语法如下:
Request[.collectionlpropertylmethod](variable)
collection集合
clientcertificate 得到在HTTP请求中传递在客户端认证域的值
cookies 使用此集合,可得到cookies值
form 得到form对象中元素的值
querystring 得到变量的值
servervariables 得到预置的环境变量的值
property属性
totalbytes (只读)指定从客户端传递总字节数
buffer 表明页面输出是否有缓冲
cachecontrol 决定代理服务器是否能够对asp的输出进行快取
property属性
charset 字符集
contenttype 指定response的HTTP内容类型
expires 定义一个浏览器缓存中的页面在多长时间后过期
expiresabsolute 定义一个浏览器缓存中的页面什么日期时间后过期
isclientconnected 用户是否连接到服务器
pics 设置pics-label response标题的值,标示pics内容等级
status 由服务器返回的状态行
说明:
1、其中collection表示集合,它和数组很类似,是由若干元素组成的集合。不过数组一般只能用索引(下标)来引用每一个元素,而集合不仅可以用索引来引用每一个元素的值,还可以用元素的名称来引用,如Request.Form("txtA")。事实上,后者是常用的方法。
2、variable又称参数,它就是要获取的元素的名称,可以是字符串常量或字符串变量。例如,对表单信息来说,variable就是每一个表单元素的名称。
3、“【”和“】”之间的参数可以省略,如Request("txtA")。此时因为没有指定集合,所以ASP将会依次在QueryString、Form、Cookies、ServerVariables、ClientCertificate这5种集合中检查是否有信息传入。如果有信息传入,则会返回获取的信息。
4、请注意上面的第二个例子,其中前面的strB是定义的一个变量名称,而后面的strB则是集合中一个元素的名称,两者不是一回事。
method方法
binaryread 得到从客户端传给服务器端的数据
1.Request对象是ASP中常用的对象,用于获取客户端的信息,可以使用Request对象访问任何基于HTTP请求传递的所有信息。通过Request对象能够获得客户端发送给服务器的信息,不能将服务器端的数据发送给客户端的浏览器。Request对象的属性TotalBytes的功能是取得客户端响应数据字节大小。Request对象的方法BinaryRead的功能是以二进制方式读取客户端post的数据。
request对象有五个集合,下面予以介绍:
QueryString
:用以获取客户端附在url地址后的查询字符串中的信息。
例如:stra=Request.QueryString ["strUserld"]
Form
:用以获取客户端在FORM表单中所输入的信息。(表单的method属性值需要为POST)
例如:stra=Request.Form["strUserld"]
Cookies
:用以获取客户端的Cookie信息。
例如:stra=Request.Cookies["strUserld"]
ServerVariables
:用以获取客户端发出的HTTP请求信息中的头信息及服务器端环境变量信息。
例如:stra=Request.ServerVariables["REMOTE_ADDR"],返回客户端IP地址
ClientCertificate
:用以获取客户端的身份验证信息
例如:stra=Request.ClientCertificate["VALIDFORM"],对于要求安全验证的网站,返回有效起始日期。
2session对象
用于存储特定的用户会话所需的信息 。 Session对象的引入是为了弥补HTTP协议的不足,HTTP协议是一种无状态的协议。
Session中文是“会话”的意思,在ASP中代表了服务器与客户端之间的“会话”。Session的作用时间从用户到达某个特定的Web页开始,到该用户离开Web站点,或在程序中利用代码终止某个Session结束。引用Session 则可以让一个用户访问多个页面之间的切换也会保留该用户的信息。
系统为每个访问者都设立一个独立的Session对象,用以存储Session变量,并且各个访问者的Session对象互不干扰。
Session与Cookie是紧密相关的。 Session的使用要求用户浏览器必须支持Cookie,如果浏览器不支持使用Cookie,或者设置为禁用Cookie,那么将不能使用Session。
Session信息对客户来说,不同的用户用不同的Session信息来记录。当用户启用Session时,ASP自动产生一个SessionID.在新会话开始时,服务器将SessionID当做cookie存储在用户的浏览器中。
session语法:
session.集合∣属性∣方法
举例:
<html>
<head>
<title>学好session加油</title>
</head>
<body>
<%
session("greeting")="ASP“
Response.write(session("greeting"))
%>
</body>
</html>
Session对象的集合、属性、方法、事件
名称 描述
Contents集合 包含所有通过脚本命令添加到应用程序中的数据项
SessionID属性 用来标识每一个Session对象
TimeOut属性 用来设置Session会话的超时时间(以分钟表示)
Abandon方法 强行删除当前会话的Session对象,释放系统资源
Session_OnStart事件 建立Session对象时所激发的事件
Session_OnEnd事件 结束Session对象时所激发的事件
StaticObjects集合 包含所有通过<OBJECT>标记添加到应用程序中的对象
3
CompareValidator 控件用于将由用户输入到输入控件的值与输入到其他输入控件的值或常数值进行比较。
注释:如果输入控件为空,则不会调用任何验证函数,并且验证将成功。使用 RequiredFieldValidator 控件使字段成为必选字段。
属性
属性 描述
BackColor CompareValidator 控件的背景颜色。
ControlToCompare 要与所验证的输入控件进行比较的输入控件。
ControlToValidate 要验证的输入控件的 ID。
Display 验证控件中错误信息的显示行为。
合法值是:
None 验证消息从不内联显示。
Static 在页面布局中分配用于显示验证消息的空间。
Dynamic 如果验证失败,将用于显示验证消息的空间动态添加到页面。
EnableClientScript 布尔值,规定是否启用客户端验证。
Enabled 布尔值,规定是否启用验证控件。
ErrorMessage 当验证失败时在 ValidationSummary 控件中显示的文本。
注释:如果未设置 Text 属性,此文本将显示在验证控件中。
ForeColor 控件的前景颜色。
id 控件的唯一 ID。
IsValid 布尔值,指示由 ControlToValidate 指定的输入控件是否通过验证。
Operator 要执行的比较操作的类型。
运算符是:
Equal
GreaterThan
GreaterThanEqual
LessThan
LessThanEqual
NotEqual
DataTypeCheck
runat 规定控件是服务器控件。必须设置为 "server"。
Text 当验证失败时显示的消息。
Type 规定要对比的值的数据类型。
类型有:
Currency
Date
Double
Integer
String
ValueToCompare 一个常数值,该值要与由用户输入到所验证的输入控件中的值进行比较。
实例
CompareValidator
在此例中,我们在 .aspx 文件中声明了两个 TextBox 控件,一个 Button 控件,以及一个 CompareValidator 控件。如果验证失败,将在 CompareValidator 控件中使用黄色背景红色文本显示 "Validation Failed!"。
CompareValidator 2
在此例中,我们在 .aspx 文件中声明了两个 TextBox,一个 ListBox 控件,一个 Button 控件,以及一个 CompareValidator 控件。check_operator() 函数把 ListBox 控件中选取的运算符设置为 CompareValidator 控件的运算符,然后对 CompareValidator 控件进行验证。如果验证失败,将在 CompareValidator 控件中使用黄色背景和红色文本显示 "Validation Failed!"。
4.FileUpload控件
FileUpload 控件显示一个文本框控件和一个浏览按钮,使用户可以选择客户端上的文件并将它上载到 Web 服务器。用户通过在控件的文本框中输入本地计算机上文件的完整路径(例如,C:\MyFiles\TestFile.txt)来指定要上载的文件。用户也可以通过单击“浏览”按钮,然后在“选择文件”对话框中定位文件来选择文件。
用户选择要上载的文件后,FileUpload 控件不会自动将该文件保存到服务器。您必须显式提供一个控件或机制,使用户能提交指定的文件。例如,可以提供一个按钮,用户单击它即可上载文件。为保存指定文件所写的代码应调用 SaveAs 方法,该方法将文件内容保存到服务器上的指定路径。通常,在引发回发到服务器的事件的事件处理方法中调用 SaveAs 方法。
在文件上传的过程中,文件数据作为页面请求的一部分,上传并缓存到服务器的内存中,然后再写入服务器的物理硬盘中。
有三个方面需要注意:
1.确认是否包含文件
在调用 SaveAs 方法将文件保存到服务器之前,使用 HasFile 属性来验证 FileUpload 控件确实包含文件。若 HasFile 返回 true,则调用 SaveAs 方法。如果它返回 false,则向用户显示消息,指示控件不包含文件。不要通过检查PostedFile 属性来确定要上载的文件是否存在,因为默认情况下该属性包含 0 字节。因此,即使 FileUpload 控件为空,PostedFile 属性仍返回一个非空值。
2.文件上传大小限制
默认情况下,上传文件大小限制为 4096 KB (4 MB)。可以通过设置 httpRuntime 元素的 maxRequestLength 属性来允许上载更大的文件。若要增加整个应用程序所允许的最大文件大小,请设置 Web.config 文件中的 maxRequestLength 属性。若要增加指定页所允许的最大文件大小,请设置 Web.config 中 location 元素内的 maxRequestLength 属性。
上载较大文件时,用户也可能接收到以下错误信息:
aspnet_wp.exe (PID: 1520) was recycled because memory consumption exceeded 460 MB (60 percent of available RAM).
以上信息说明,上传文件的大小不能超过服务器内存大小的60%。这里的60%是Web。config文件的默认配置,是<processModel>配置节中的 memoryLimit 属性默认值。虽然可以修改,但是如果上传文件越大,成功几率越小,不建议使用。
3.上传文件夹的写入权限
应用程序可以通过两种方式获得写访问权限。您可以将要保存上载文件的目录的写访问权限显式授予运行应用程序所使用的帐户。您也可以提高为 ASP.NET 应用程序授予的信任级别。若要使应用程序获得执行目录的写访问权限,必须将 AspNetHostingPermission 对象授予应用程序并将其信任级别设置为 AspNetHostingPermissionLevel.Medium 值。提高信任级别可提高应用程序对服务器资源的访问权限。请注意,该方法并不安全,因为如果怀有恶意的用户控制了应用程序,他(她)也能以更高的信任级别运行应用程序。最好的做法就是在仅具有运行该应用程序所需的最低特权的用户上下文中运行 ASP.NET 应用程序。
FileUpload控件的常用属性:
属性
数据类型
说明
FileBytes
byte[]
获取上传文件的字节数组
FileContent
Stream
获取指定上传文件的Stream对象
FileName
String
获取上传文件在客户端的文件名称
HasFile
Bool
获取一个布尔值,用于表示FileUpload控件是否已经包含一个文件
PostedFile
HttpPostedFile
获取一个与上传文件相关的HttpPostedFile对象,使用该对象可以获取上传文件的相关属性
可以通过3种方法访问上传文件:
1.通过FileBytes属性。该属性将上传文件数据置于字节数组中,遍历该数组,则能够以字节方式了解上传文件的内容。
2.通过FileContent属性。调用该属性可以获得一个指向上传文件的Stream对象。可以使用该属性读取上传文件数据,并使用FileBytes属性显示文件内容。
3.通过PostedFile属性。调用该属性可以获得一个与上传文件相关的HttpPostedFile对象,使用该对象可以获得与上传文件相关的信息。例如,调用HttpPostedFile对象的ContentLength,可以获得上传文件大小;调用HttpPostedFile对象的ContentType属性,可以获得上传文件的类型;调用HttpPostedFile对象的FileName属性,可以获得上传文件在客户端的完整路径(调用FileUpload控件的FileName属性,仅能获得文件名)。
5.DataAdapter
表示一组 SQL 命令和一个数据库连接,它们用于填充 DataSet和更新数据源。 命名空间:System.Data.Common
程序集:System.Data(在 system.data.dll 中)
语法 public class DataAdapter : Component, IDataAdapter
DataAdapter 用作 DataSet 和数据源之间的桥接器以便检索和保存数据。DataAdapter 通过映射Fill(这更改了 DataSet 中的数据以便与数据源中的数据相匹配)和Update(这更改了数据源中的数据以便与 DataSet 中的数据相匹配)来提供这一桥接器。
如果所连接的是 SQL Server 数据库,则可以通过将SqlDataAdapter与关联的SqlCommand和SqlConnection对象一起使用,从而提高总体性能。对于支持 OLE DB 的数据源,请使用 DataAdapter 及其关联的OleDbCommand和 OleDbConnection 对象。对于支持 ODBC 的数据源,请使用 DataAdapter 及其关联的OdbcCommand和OdbcConnection对象。对于 Oracle 数据库,请使用 DataAdapter 及其关联的OracleCommand和OracleConnection对象。
当创建 DataAdapter 的实例时,读/写属性将被设置为初始值。有关这些值的列表,请参见 DataAdapter 构造函数
这些都出自网络。其实我也不懂。能帮一点帮一点吧。
B. 网站如何怎么发布
前段时间在局域网上发布了一个自己做的网站,发布过程中遇到了不少问题。下面就发布过程和发布过程中遇到的问题与(你)大家一起分享一下,希望孝御森对(你)大家有所帮助吧!在将ASP.NET网站发布到服务器之前需要先完成以下步骤:
1、在服务器中创建用于存放所有网站文件的虚拟目录;
2、为站点指定使用的域名或IP地址;
3、为远程用户提供用于上传文件的FTP用户名和密码。一、在Web服务器上配置IIS
InternetInformationServer的缩写为(IIS)是一个WorldWideWebserver。
Gopherserver和FTPserver全部包容在里面。
IIS意味着你能发布网页,并且有ASP(ActiveServerPages)、JAVA、VBscript产生页面,
有着一些扩展功能。
其次,IIS是随WindowsNTServer4.0一起提供的文件和应用程序服务巧亩器,
是在WindowsNTServer上建立Internet服务器的基本组件。它与WindowsNTServer完全集成,
允许使用WindowsNTServer内置的安全性以及NTFS文件系统建立强大灵活的Internet/Intranet站点。1、为站点准备一个IP地址
任何一个能被访问的站点必须有一个固定的IP地址为前提,WindowsServer2003或WindowsXP
允许为同一快网卡设置多个IP地址,操作方法如下:
在“本地连接”上右击,在弹出的快捷菜单中执行“属性”命令,打开“本地连接属性”对话框。
选择“Internet协议(TCP/IP)”后单击【属性】按钮,在打开的对话框中单击【高级】按钮,然后单
击“IP地址”区域中的【添加】按钮,在打开的对话框中输入要添加的IP地址与子网掩码即可。
(如IP地址:192.168.0.1,子网掩码:255.255.255.0)注:微软对上述操作有明确的说明:“如果同一网卡的IP地址超过9个,不能保证其运行的稳定性”。
对于这上问题的一个有效拆橡的解决办法是:如果同一服务器中安排的站点数量过多时,可以通过在IIS
中指定不同的TCP端口号来区分不同的站点。如:“信息服务(IIS)管理器”
打开IIS管理窗口。在管理器的左窗口中选择“网站”,再在“操作”菜单中选择“新建”下的“网站”
命令。启动“网站创建向导”,然后按向导提示分别输入网站的描述和为网站分配的IP地址等。操作完成
后将建立一个空的站点。只要将完成的网站发布到网站的指定目录下就可以通过浏览器对网站进行访问了。
注:对于没有添加IIS的系统先要为其添加IIS。添加方法是:打开“控制面板”的“添加/删除程序”
选择“添加/删除Windows组件”中选中“Internet信息服务(IIS)”同时将系统盘插入光驱中点击“下一步”
进行IIS的安装。只有先安装好IIS才在IIS中进行对网站的配置。
注:对于创建好虚拟站点的网站还可以在IIS管理窗口中对其进行进一步的设置。在IIS管理窗口中右
击创建好的网站,打开其属性对话框进行进一步的设置:
(1)由于VS2005创建的ASP.NET网站需要ASP.NET2.0
版本的支持,而IIS一般默认的为ASP.NET1.1故要在打开的属性窗口的ASP.NET选项卡下的“ASP.NET2.0
版本”下拉列表框中选择ASP.NET2.0版本。
(2)在打开的属性窗口的“文档”选项卡的“启用默认文档”区点击【添加】按钮将网站的起始页面的名称
添加到文本框中。这样在浏览器中输入站点的域名或IP地址后将打开默认的起始页,而无需输入起始页面名称。
(3)在打开的属性窗口的“网站”选项卡中可以更改站点的描述、IP地址和TCP端口等信息。在第一次发布网站时往往还会遇到以下几个问题:
(1)浏览器中输入网站的地址后出现如下的提示:
“服务器应用程序不可用
您试图在此Web服务器上访问的Web应用程序当前不可用。请点击Web浏览器中的“刷新”按钮重试您的请求。”当我们查看系统事件日志发现:错误:
未能初始化AppDomain:/LM/W3SVC/1/Root,未能加载文件或程序集“System.Web....”错误:由于无法创建应用程序域,因此未能执行请求。错误:0x80070005拒绝访问。
警告:
未能初始化AppDomain:/LM/W3SVC/...
Exception:System.IO.FileLoadException
Message:未能加载文件或程序集“System.Web,Version=2.0.0.0,Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。拒绝访问。
等的错误提示信息。对于上述问题产生的原因一般有两个:
1、asp.net2.0没有正确地在IIS中注册
2、权限问题如果是第一种情况,可以重新注册asp.net:
系统盘windowsmicrosoft.net_x000c_ramework_x000b_2.0.50727(此处为版本号)aspnet_regiis.exe
-i
或者是直接在Mocrosoft.NETFrameworkv2.0的SDK命令提示符下输入:aspnet_regiis.exe
-i
如果是权限问题,需要确保asp.net运行帐户(默认情况下,在win2003中是Network
Service,在xp中是aspnet)对N个目录具有相应的访问权限,主要是系统目录
(具体列表可以在网上很容易找到),还有一个容易忽略的目录:Web应用所对应的虚拟目录
(2)浏览器中输入网站的地址后出现如下的提示:
“访问IIS元数据失败”这是由于先安装的VS2005,后安装的IIS才出现的。解决办法如下:
在开始菜单中打开"Microsoft.NETFrameworkSDKV2.0"目录下的“SDK命令提示符”,
打开以后在命令提示符中运行“aspnet_regiis-r”就可以了.
如果你安装的只是.netFramework,那么可以到下面的目录运行同样的命令:
%Systemroot%Microsoft.NETFramework_x000b_2.0.50727二、创建FTP远程管理账号在IIS中创建了发布ASP.NET网站需要的站点后,还需要为用户提供一个用于远程上传文件的FTP服务器账号。
当然如果只是在局域网上发布的话,最后一步就省了。
C. 如何在本地计算机中配置.net服务器
在默认网站属性的常规属性中选择配置--然后单击调试选项卡--起用那里的两个ASP和ASP.NET的调试环境就可以了
.其他配置我就不说了.你应该知道.如果不知道的话我下面提供了一个详细的调试环境文章以供参考.
大家知道,Microsoft为了更好地预防恶意用户和攻击者的攻击,在默认情况下,没有将 IIS6.0 安装到 Windows Server 2003 家族的成员上。而且,当我们最初安装 IIS6.0 时,该服务在高度安全和"锁定"模式下安装。在默认情况下,IIS6.0 只为静态内容提供服务即,诸如 ASP、ASP.NET、在服务器端的包含文件、WebDAV 发布和 FrontPage Server Extensions 功能只有在启用时才工作。在windows 2003 IIS 6.0中安装部署ASP.net环境,我们首先要了解一下IIS6.0 新的特点,在windows 2003 Server下如何安装IIS6.0,在IIS6.0的配合下我们如何来安装和部署ASP.net环境,以及它们之间关系,下面的内容将给大家一个解答。
1、使用"配置您的服务器向导"安装 IIS6.0
1)从"开始"菜单,单击"管理您的服务器"。
2)在"管理您的服务器角色"下,单击"添加或删除角色"。
3)阅读"配置您的服务器向导"中的预备步骤,然后单击"下一步"。
4)在"服务器角色"下,单击"应用程序服务器 (IIS,ASP.NET)",然后单击"下一步"。
5)阅读概要信息,然后单击"下一步"。
6)单击"完成"。
2、使用控制面板安装 IIS、添加组件或删除组件
1)从"开始"菜单,单击"控制面板"。
2)双击"添加或删除程序"。
3)单击"添加/删除 Windows 组件"。
4)在"组件"列表框中,单击"应用程序服务器"。
5)单击"详细信息"。
6)单击"Internet 信息服务管理器"。
7)单击"详细信息"以查看 IIS 可选组件的列表。
8)选择要安装的所有可选组件。
9)单击"确定",直到返回到"Windows 组件向导"。
10)单击"下一步",然后完成"Windows 组件向导"。
三、在Windows 2003 Server 安装 ASP.NET
Windows Server 2003 家族利用 ASP.NET 和 IIS 集成改善了开发人员体验。ASP.NET 识别大多数 ASP 代码,同时为创建可作为 Microsoft .NET Framework 的一部分工作的企业级 Web 应用程序提供更多的功能。使用ASP.NET 允许我们充分利用公共语言运行库的功能,如类型安全、继承、语言互操作性和版本控制。IIS 6.0 还为最新的 Web 标准,包括 XML、简单对象访问协议 (SOAP) 和 Internet 协议版本 6.0 (IPv6.0),提供支持。
ASP.NET 是一个统一的 Web 开发平台,它提供开发人员创建企业级 Web 应用程序所需的服务。尽管 ASP.NET 的语法基本上与 ASP 兼容,但是它还提供了一个新的编程模型和基础结构以提高应用程序的安全性、缩放性和稳定性。通过逐渐向现有的 ASP 应用程序增加 ASP.NET 功能,我们可以自由地使其增大。ASP.NET 是一个编译的、基于 .NET 的环境;我们可以用任何 .NET 兼容的语言(包括 Microsoft Visual Basic.NET,Microsoft Visual C# 和 Microsoft JScript .NET)创作应用程序。另外,整个 Microsoft .NET Framework 可用于任何 ASP.NET 应用程序。开发人员可以很容易地从这些技术受益,这些技术包括管理的公共语言运行库环境、类型安全、继承等。
ASP.NET的优点如下:
1)可管理性: ASP.NET 使用基于文本的、分级的配置系统,简化了将设置应用于服务器环境和 Web 应用程序的工作。因为配置信息是存储为纯文本的,因此可以在没有本地管理工具的帮助下应用新的设置。配置文件的任何变化都可以自动检测到并应用于应用程序。
2)安全: ASP.NET 为 Web 应用程序提供了默认的授权和身份验证方案。开发人员可以根据应用程序的需要很容易地添加、删除或替换这些方案。
3)易于部署: 通过简单地将必要的文件复制到服务器上,ASP.NET 应用程序即可以部署到该服务器上。不需要重新启动服务器,甚至在部署或替换运行的已编译代码时也不需要重新启动。
4)增强的性能: ASP.NET 是运行在服务器上的已编译代码。与传统的 Active Server Pages (ASP) 不同,ASP.NET 能利用早期绑定、实时 (JIT) 编译、本机优化和全新的缓存服务来提高性能。
5)灵活的输出缓存: 根据应用程序的需要,ASP.NET 可以缓存页数据、页的一部分或整个页。缓存的项目可以依赖于缓存中的文件或其他项目,或者可以根据过期策略进行刷新。
6)国际化: ASP.NET 在内部使用 Unicode 以表示请求和响应数据。可以为每台计算机、每个目录和每页配置国际化设置。
7)移动设备支持: ASP.NET 支持任何设备上的任何浏览器。开发人员使用与用于传统的桌面浏览器相同的编程技术来处理新的移动设备。
8)扩展性和可用性: ASP.NET 被设计成可扩展的、具有特别专有的功能来提高群集的、多处理器环境的性能。此外,Internet 信息服务 (IIS) 和 ASP.NET 运行时密切监视和管理进程,以便在一个进程出现异常时,可在该位置创建新的进程使应用程序继续处理请求。
9)跟踪和调试: ASP.NET 提供了跟踪服务,该服务可在应用程序级别和页面级别调试过程中启用。可以选择查看页面的信息,或者使用应用程序级别的跟踪查看工具查看信息。在开发和应用程序处于生产状态时,ASP.NET 支持使用 .NET Framework 调试工具进行本地和远程调试。当应用程序处于生产状态时,跟踪语句能够留在产品代码中而不会影响性能。
10)与 .NET Framework 集成: 因为 ASP.NET 是 .NET Framework 的一部分,整个平台的功能和灵活性对 Web 应用程序都是可用的。也可从 Web 上流畅地访问 .NET 类库以及消息和数据访问解决方案。ASP.NET 是独立于语言之外的,所以开发人员能选择最适于应用程序的语言。另外,公共语言运行库的互用性还保存了基于 COM 开发的现有投资。
11)与现有 ASP 应用程序的兼容性: ASP 和 ASP.NET 可并行运行在 IIS Web 服务器上而互不冲突;不会发生因安装 ASP.NET 而导致现有 ASP 应用程序崩溃的可能。ASP.NET 仅处理具有 .aspx 文件扩展名的文件。具有 .asp 文件扩展名的文件继续由 ASP 引擎来处理。然而,应该注意的是会话状态和应用程序状态并不在 ASP 和 ASP.NET 页面之间共享。
安装 ASP.NET
在 Windows Server 2003 家族、Windows 2000 (Professional、Server 和 Advanced Server)以及 Windows XP Professional 上的客户端和服务器应用程序都支持 ASP.NET。
运行 Microsoft Windows Server 2003 家族成员的服务器可以配置为应用程序服务器,并将 ASP.NET 作为在配置应用程序服务器角色时可以启用的选项。要向产品服务器部署 ASP.NET Web 应用程序,在分发应用程序之前,必须确保在产品服务器中启用了 ASP.NET 和 IIS 角色。
1、使用"配置您的服务器"向导在运行 Windows Server 2003 的服务器中安装 ASP.NET
1)从"开始"菜单中,单击"管理您的服务器";在"管理您的服务器"窗口中,单击"添加或删除角色"。
2)在"配置您的服务器向导"中,单击"下一步",并在"服务器角色"对话框中,选中"应用程序服务器 (IIS、ASP.NET)",然后单击"下一步"。
3)在"应用程序服务器选项"对话框中,选中"启用 ASP.NET"复选框,单击"下一步",然后再单击"下一步"。
4)如有必要,请将 Windows Server 2003 安装 CD 插入 CD-ROM 驱动器,然后单击"下一步"。
5)当安装完成时,单击"完成"。
2、在运行 Windows Server 2003 的服务器中使用"添加或删除程序"安装 ASP.NET
1)从"开始"菜单中,指向"控制面板",然后单击"添加或删除程序"。
2)在"添加或删除程序"对话框中,单击"添加/删除 Windows 组件"。
3)在"Windows 组件"向导中的"组件"中,选中"应用程序服务器"复选框,然后单击"下一步"。
4)当在"Windows 组件"向导中完成对 Windows Server 2003 的配置时,单击"完成"。
3、在运行 Windows Server 2003 的服务器中的 IIS 管理器中启用 ASP.NET
1)从"开始"菜单中,单击"运行"。
2)在"运行"对话框中的"打开"框中,键入 inetmgr,然后单击"确定"。
3)在 IIS 管理器中,展开本地计算机,然后单击"Web 服务扩展"。
4)在右侧窗格中,右键单击"ASP.NET"然后单击"允许"。ASP.NET 的状态变为"允许"。
ASP.NET Web 应用程序的布局
ASP.NET 应用程序被定义为可从 Web 服务器上的虚拟目录及其子目录中调用的所有文件和可执行码。其中可以包含网页(.html 文件)、Web 表单页面(.aspx 文件)、Web 表单用户控件(.ascx 文件)、XML Web 服务(.asmx 文件)、HTTP 处理程序、HTTP 模块和其他文件(如图像和配置文件)。现在使用的所有与 Microsoft .NET Framework 版本相关的脚本映射也都是 ASP.NET 应用程序的一部分。ASP.NET 应用程序必须位于 IIS 虚拟目录(也称为应用程序根目录)中。ASP.NET 应用程序可包含已编译的程序集(通常是包含业务逻辑的 DLL 文件)、用于存储预编译代码的已知目录(目录名总是 \Bin)、存储在基于文本的、易读的 Web.config 文件中的配置设置、页、服务器控件,以及 XML Web 服务。
服务器中任何不与其他应用程序共享的预编译代码必须存储在应用程序的 \Bin 目录中。它是应用程序的本地程序集缓存。Web.config 文件在基于 XML 的文本文件中存储应用程序级的配置文件。这意味着可以使用任意标准的文本编辑器或 XML 分析器来创建它们,而且它们是可读的。如果不在应用程序根目录中包含 Web.config 文件,则配置设置由 Machine.config 文件中整个服务器的配置文件来确定。安装 .NET Framework 时,会安装 Machine.config 文件的某个版本。
下图显示了 ASP.NET 应用程序文件系统布局的示例。
本图中的应用程序包括 \Bin 目录中的两个 DLL 文件、一个 Default.aspx 页,一个名为 Menu.ascx 的用户控件、一个名为 MyWebService.asmx 的 XML Web 服务以及一个 Global.asax 文件。另外,该应用程序是使用下列三个配置文件配置的:系统根目录中计算机级别的 Machine.config 文件、C:\Inetpub\Wwwroot 目录中站点级别的 Web.config 文件和应用程序根目录中应用程序级别的 Web.config 文件。当站点的 Web.config 文件覆盖 Machine.config 文件中的设置时,在应用程序根目录中存储的配置设置将覆盖站点的 Web.config 文件和 Machine.config 文件中的设置。
ASP.NET与IIS、ASP 之间的比较
ASP.NET 应用程序与 Internet 信息服务 (IIS) 之间的关系如下:IIS 通过 aspnet_isapi.dll(ASP.NET 的进程模型)对可发布的 ASP.NET 文件的所有请求提供服务。IIS 不会处理服务器端的代码;而 ASP.NET 引擎则会处理服务器端代码,然后将输出返回给 IIS(如果可能,或另一个 Web 服务器)。
ASP.NET 并非仅仅是下一代的ASP,它为创建利用 Internet 的网络应用程序提供了全新的编程模型。ASP.NET与ASP比较的特点如下:
1、改进的性能和可伸缩性
1)编译后执行:ASP.NET 比传统 ASP 的运行速度更快,同时保留了 ASP"只需点击保存"的更新模型。无需显式的编译步骤。ASP.NET 自动检测变化,根据需要动态编译文件,并且保存编译结果以便后续的请求再次使用。动态编译保证了用户的应用程序总是最新的,并且编译后执行的操作会使其运行速度更快。对于多数从传统的 ASP 迁移到 ASP.NET 的应用程序,其处理的页数增长了 3 至 5 倍。
2)大容量输出缓存:ASP.NET 输出缓存极大地改进了应用程序的性能和可伸缩性。当在页面中启用输出缓存时,ASP.NET 就会执行一次该页并将结果在发送至用户之前保存在内存中。当其他用户请求同一页面时,ASP.NET 使用内存中的缓存结果向用户提供服务,而不是重新执行该页面。输出缓存是可配置的,并且可以用来缓存单个区域或整个页面。
3)Web 场会话状态:ASP.NET 会话状态允许我们在 Web 场中的所有计算机之间共享会话数据。现在,用户可以通过多个请求访问 Web 场中不同的服务器,并且仍然具有完全访问会话数据的权限。
2、增强的可靠性
内存泄漏、死锁和故障保护:ASP.NET 自动检测错误(例如,死锁和内存泄漏)并进行恢复以确保我们的应用程序始终可用。例如,当检测到内存泄漏时,ASP.NET 将自动启动新的 ASP.NET 工作进程副本,并将所有的新请求定向到该进程。当旧进程完成挂起请求的处理后,会经过适当的处置并释放泄漏的内存。
3、部署简单
1)"非接触式"应用程序部署:使用 ASP.NET,我们可以通过将其复制到服务器来进行整个应用程序的部署。配置设置将存储在应用程序的 XML 文件中。
2)动态更新运行的应用程序:ASP.NET 允许我们不必重新启动 Web 服务器而更新已编译的组件。与传统的 COM 组件(这些组件需要在部署更新后手动重新启动 Web 服务器)不同,ASP.NET 自动检测更改并使用新的代码启动。
3)迁移路径简单:ASP.NET 可以和传统的 ASP 应用程序一起在 Microsoft Windows 2000、Windows XP、以及 Windows Server 2003 家族成员的 IIS 上运行。我们可以一次迁移一个应用程序,甚至是单独的页面。ASP.NET 甚至允许我们继续使用现有的传统 COM 商务组件。
4、新的应用程序模型
1)XML Web 服务:XML Web 服务允许应用程序通过 Internet 进行通信和共享数据,而不管操作系统和编程语言如何。ASP.NET 使得公开和调用 XML 网络服务变得简单。
2)移动 Web 设备支持:ASP.NET 移动控件允许我们处理超过 80 台使用 ASP.NET 的移动 Web 设备。我们只需一次性写入应用程序,移动控件就能自动生成请求设备的页面。
5、开发人员的效率
1)简单的编程模型:具有服务器控件(这些控件允许我们使用比传统 ASP 更少的代码来构建效果极佳的页面)的 ASP.NET 使得动态构建真实的 Web 应用程序变得更加容易。
2)灵活的语言选项:ASP.NET 不仅支持 Microsoft Visual Basic Scripting Edition (VBScript) 和 Microsoft JScript,而且支持 25 种以上的 .NET 语言,包括对 Visual Basic .NET、Microsoft C# 和 JScript .NET 的内置支持。
3)丰富的类框架:.NET Framework 类库提供了 4500 多种类,这些类封装了大量的功能,诸如 XML、数据访问、文件上载、正则表达式、图像生成、性能监视和日志记录、事务、消息队列和 SMTP 邮件。
D. 我有一个ASP.NET做的网站,部署到服务器上后访问主页就会报访问被拒绝,该怎么办
改文件夹是不是不在IIS的目录下?换个路径试试吧。直接在IIS的目录下建一个文件夹,然后把文件指向该路径看看还有没有问题。
E. 镓嬫満aspx鏂囦欢镓揿紑鏁欑▼
杩欐槸ASPNET锷ㄦ佺殑缃戦〉濡傛灉浣犳兂镆ョ湅鎴栫紪杈戞枃浠堕噷杈圭殑鍐呭癸纴鐢ㄤ竴鑸镄勬枃链缂栬緫杞浠跺氨鍙浠ュ傛灉鏄𨱍冲湪娴忚埚櫒涓镆ョ湅鏂囦欢杩愯屽嚭𨱒ョ殑鏁堟灉锛岄偅浣犲缑灏嗘枃妗f墍鍦ㄧ殑Web绔欑偣锛屾斁鍦↖IS鍏朵粬鏀鎸丯ET鎶链镄勬湇锷″櫒涔熷彲浠ヤ腑銆
闾d釜鏄痺en链嶅姟鍣ㄦ墦寮镄勶纴鍙链夐氲繃杞浠舵妸镓嬫満鍙樻垚链嶅姟鍣锛屽氨鍙浠ヤ简銆
鍙抽敭钬渁spx鏂囦欢钬濓纴阃夋嫨钬灭紪杈戋 锛屽氨鍙浠ユ墦寮aspx鏂囦欢鏄寰杞镄勫湪链嶅姟鍣ㄧ杩愯岀殑锷ㄦ佺绣椤垫枃浠讹纴灞炰簬ASPNET鎶链疉SPNET鏄鐢卞井杞鍦路NET Framework妗嗘灦涓镓鎻愪緵锛屽紑鍙慦eb搴旂敤绋嫔簭镄勭被搴掳纴灏佽呭湪鏂囦欢涓锛屾樉銆
aspx鍦ㄥ㈡埛绔搴旇ユ槸涓嶈兘鐩存帴镓揿紑锛屼笅杞藉簲璇ユ槸鏂囨湰锛屽彲浠ョ敤璁颁簨链镓揿紑锛屼絾鏄镓揿紑镄勫苟涓嶆槸婧愪唬镰佹墍浠*aspx姝e父搴旇ョ敤IE镓揿紑骞朵笖搴旇ユ槸绫讳技浜巃spx銆