通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

QQ,ASP,PHP,JSP,XML,SQL,.Net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>编程开发>>NET专区>>正文 新版上线![旧版]
注:打开慢时请稍等

部署 ASP.NET 应用程序

http://www.iyit.net  日期:2006-8-28 14:47:10  来源:  点击:
参加讨论ASP.NET 应用程序的文件系统布局

ASP.NET 可以用来承载多个 Web 应用程序,其中每个应用程序由 Web 站点(Web 站点在 Web 服务器上表现为一个唯一的主机名/端口组合)内的一个唯一的 URL 前缀来标识。例如,一个具有两个映射 IP 地址(一个别名为“www.msn.com”,另一个别名为“intranet”)和三个逻辑站点(http://intranet、http://www.msn.com 和 http://www.msn.com port 81)的 Microsoft Internet Information 服务 (IIS) Web 服务器可以公开以下六个 ASP.NET 应用程序。

应用程序 URL 说明
http://intranet Intranet 站点上的“根”应用程序。
http://www.msn.com www.msn.com 站点上的“根”应用程序。
http://www.msn.com:81 www.msn.com 81端口站点上的“根”应用程序。
http://intranet/training Intranet 站点上的“培训”应用程序。
http://intranet/hr Intranet 站点上的“HR”(人力资源)应用程序。
http://intranet/hr/compensation/ Intranet 站点上的“薪酬”应用程序。

注意:表中提到的薪酬应用程序的 URL 以 HR 应用程序的 URL 命名空间为基础。但是,此 URL 分级表示法并不意味着薪酬应用程序包含或嵌套在 HR 应用程序中。相反,每个应用程序都保持一个独立的配置和类解析属性集;两个都是 Intranet 站点的逻辑对等子站点。

在 URL 命名空间中公开的每个 ASP.NET 框架应用程序都通过位于本地或远程文件共享的文件系统目录得到支持。不要求应用程序目录集中位于文件系统的相邻部分;它们可以分散在整个磁盘中。例如,前面提到的 ASP.NET 应用程序可以位于下表所列的不同目录中。

应用程序 URL 物理路径
http://intranet c:\inetpub\wwwroot
http://www.msn.com c:\inetpub\msnroot
http://www.msn.com:81 d:\msnroot81
http://intranet/training d:\serverapps\trainingapp
http://intranet/hr \\hrweb\sillystuff\reviews
http://intranet/hr/compensation/ c:\inetpub\wwwroot\compensation


解析对程序集的类引用

程序集是公共语言运行库中的类部署单元。使用 Visual Studio .NET 7.0 版编写 .NET 框架类的开发人员将为他们编译的每个 Visual Studio 项目生成一个新的程序集。尽管使程序集跨越多个可移植可执行 (PE) 文件(几个模块 DLL)是可行的,但默认情况下,Visual Studio .NET 将所有程序集代码编译成一个 DLL(1 个 Visual Studio .NET 项目 = 1 个 .NET 框架程序集 = 1 个物理 DLL)。

在计算机上,可以通过将程序集部署到程序集缓存中来使用程序集。程序集缓存可以或者对计算机是全局的,或者对特定应用程序是本地的。只有要在多个应用程序间共享的代码才应该放在全局系统程序集缓存中。特定于具体某个应用程序的代码(如大多数 Web 应用程序逻辑)应该部署到应用程序的本地程序集缓存中。将程序集部署到应用程序的本地程序集缓存中的一个好处是,只有该应用程序内的代码才可以访问它。(对涉及 ISP 的情况而言,这是一个好特性。)它还有利于同一应用程序的并排版本控制,因为类对于每个应用程序版本实例是专用的。

只需将适当的文件复制、XCOPY 或 FTP 到已被标记为应用程序的“程序集缓存位置”的目录,就可以将程序集部署到此应用程序的本地程序集缓存中。复制了适当的文件后不必运行其他注册工具,也不需要重新启动。这消除了目前与在 ASP 应用程序中部署 COM 组件有关的一些困难(目前,管理员必须从本地登录到 Web 服务器并且运行 Regsvr32.exe)。

默认情况下,ASP.NET 框架应用程序被自动配置为将紧接应用程序根下的 \bin 子目录用作其本地程序集缓存。\bin 目录还被配置成拒绝任何浏览器访问,从而使远程客户端无法下载和窃取代码。下面的示例显示了 ASP.NET 应用程序的一种可能的目录布局,其中 \bin 目录紧接在应用程序根下。

C:\inetpub\wwwroot Web.cfg Default.aspx \bin <= Application assembly cache directory MyPages.dll MyBizLogic.dll \order SubmitOrder.aspx OrderFailed.aspx \img HappyFace.gif
ASP.NET 框架应用程序启动和类解析

ASP.NET 框架应用程序是在客户端第一次向其请求 URL 资源时才构造的。每个 ASP.NET 框架应用程序都在一个唯一的应用程序域 (AppDomain)内启动——此域是一种新的公共语言运行库构造,它使进程主机能够在运行时提供广泛的代码、安全性和配置隔离。

ASP.NET 负责在新应用程序启动时手动创建应用程序域。作为此过程的一部分,ASP.NET 提供供公共语言运行库使用的配置设置。这些设置包括:

  • 组成本地程序集缓存的目录路径。(注意:是 .NET 框架应用程序域隔离结构使每个应用程序得以保持各自的本地程序集缓存。)
  • 应用程序的安全限制(应用程序在系统上可以访问的内容)。

由于 ASP.NET 在编译时不知道您在其上所写的任何应用程序,所以它无法使用静态引用来解析和引用应用程序代码。相反,ASP.NET 必须使用动态类/程序集解析方法来实现从 ASP.NET 运行库到应用程序代码的转换。

ASP.NET 配置和页激活文件使您能够通过指定程序集和类名组合,动态引用目标编译的 .NET 框架类。该联合的字符串格式遵从此模式

classname, assemblyname
于是,公共语言运行库可以使用此简单的字符串引用来解析和加载适当的类。

代码替换

.NET 框架程序集通常编译和部署成基于 Windows DLL 的 PE 格式。当公共语言运行库的加载程序解析在此类型的程序集中实现的类时,它调用文件(锁定它在磁盘上的访问)上的 Windows LoadLibrary 例程,然后将适当的代码数据映射到内存中以在运行时执行。加载后,DLL 文件在磁盘上保持锁定,直到引用它的应用程序域被销毁或者被手动回收。

尽管 ASP.NET 无法防止公共语言运行库在磁盘上锁定加载的程序集 DLL,但它仍能提供支持,确保 Web 应用程序专用程序集缓存中的物理 DLL 永远不被运行库实际加载。相反,在程序集 DLL 即将使用之前会对它们进行影像复制。因此,运行库锁定和加载的是这些影像程序集,而不是原始文件。

由于原始程序集文件总是保持不锁定,所以可以任意删除、替换或重命名它们,而不必循环 Web 服务器或不得不使用注册实用工具。FTP 和类似的方法同样有效。ASP.NET 维护在特定应用程序的应用程序域中加载的所有程序集的活动列表,并使用文件更改监视代码监视原始文件的任何更新。

本节小结

  1. ASP.NET 框架应用程序由唯一的 URL 标识并存在于 Web 服务器的文件系统中。
  2. ASP.NET 可以使用共享程序集(驻留在全局缓存中)和应用程序特定的程序集(驻留在应用程序的虚拟根目录下的 \bin 目录中)。
  3. ASP.NET 框架应用程序在应用程序域 (AppDomain) 的上下文中运行,此域提供隔离并且强制安全限制。
  4. 可以通过使用“classname, assemblyname”动态引用类。
  5. ASP.NET 使用程序集文件的影像副本以避免锁定,并且监视这些文件以便立即获得更新。

编辑: [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:ASP.NET 处理错误
下一篇:没有了
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
最新更新 热点排行 推荐新闻
部署 ASP.NET 应用程序
ASP.NET 处理错误
ASP.NET 使用进程模型
部署 ASP.NET 应用程序
ASP.NET 配置文件格式
部署 ASP.NET 应用程序
ASP.NET 处理错误
ASP.NET 使用进程模型
部署 ASP.NET 应用程序
ASP.NET 配置文件格式
ASP.NET 配置概述
美国微软总部相中重庆15岁网络奇才(图
微软PowerPoint办公软件又出现严重漏洞
国内首次发现带有感染文件特征盗号病毒
从键盘磨损看电脑主人
缓存服务 页数据缓存
缓存服务 页片段缓存
HTTP 处理程序和工厂
使用 Global.asax 文件
HTML 文本模式匹配
WIN XP蓝屏代码大全
QQ密码被盗怎么办!我教你找回密码
WinRAR将推出免费正版序列号!
备份软件GHOST使用教程
轻易破解Winrar,Winzip密码
让WinRAR汗颜的压缩软件UHARC
Win XP操作系统优化精髓
XP中重新安装或修复IE6的三种方法
Ghost批处理命令用法详解
挖掘隐藏在Windows XP中的实用工具(续
在ASP.net中保存/取出图片入/从SQL数据
一个.net 压缩位图至JPEG的代码
ASP.NET2.0数据库入门之常见错误
在ASP.NET中防止注入攻击
用ASP.NET开发Web服务的五则技巧
国内首次发现带有感染文件特征盗号病毒
从键盘磨损看电脑主人
如何控制我的电脑只允许登录我自己的Q
QQ密码被盗怎么办!我教你找回密码
使用身份验证来禁止内部用户上网 
Win Powershell遭遇病毒 最好升级软件
SiteAdvisor 助你远离恶意网站
提升流量 站长应该做的五件事
XP中重新安装或修复IE6的三种方法
XP下Asp.net访问被拒绝
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights ? 2004-2006 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息