创建虚拟目录
在ASP.NET技术采用了真正面向对象的编程技术,每一个Web应用程序是运行在一个独特的.NET运行时应用域中,这个特性保证了类隔离、安全盒和静态太变量的隔离。为了保证每个Web一个应用程序的安全,必须保证每个Web应用程序运行于相对独立(隔离)的环境中。而每个IIS根目录只能有一个应用程序,但是实际应用中的Web应用程序确实很多,为每个Web应用程序配置一个IIS服务器显然是不现实的。因此,虚拟目录技术就因此而显得尤为重要。
虚拟目录就是相对于IIS 的根目录来说的,一个站点的根目录只能有一个,为了多个Web应用程序运行于一个IIS服务器上,就为其虚拟一个IIS目录。每个虚拟目录受控于跟目录的管理,有其特定的权限管理,也可以继承根目录的权限设置。每个虚拟目录的程序有其相对隔离的进程运行空间,保证了程序的安全运行。当然,每个虚拟目录都是指向物理磁盘中的绝对路径的,而虚拟目录指向的绝对路径可以是任意的。
在ASP.NET里,对于每一个Web 应用程序就是定义运行在Web应用服务器上的每个对应的虚拟目录以及其子目录下的所有文件,如一个IIS服务器的提供相互隔离的三个服务(每个服务对应于一个Web应用程序):新闻系统、OA系统(OA)、在线视频系统(movie)。那么,成为根IIS目录下的应用程序或许只能是其中的一个,或许一个也不是,但可以肯定的至少有两个服务(Web应用程序是在IIS的虚拟目录下运行的),比如我们假设新闻系统为其主目录下的Web应用程序(Http://xxx.xxx.xxx),则OA系统(Http://xxx.xxx.xxx/OA)和在线视频系统(Http://xxx.xxx.xxx/movie)就必定为虚拟目录。我们来学习利用IIS的管理器建立虚拟目的。假设我们要新建一个用于运行guestbook的Web程序的虚拟目录,该程序存放在C:\guestbook 文件夹下。
inetmgr.exe,打开IIS管理器(Internet信息服务),如图1.9所示。à(1) 运行命令
(2) 选择【虚拟目录】命令,如图1.10所示:à选择【新建】命令à选择【虚拟目录】命令。也可以在工具栏中选择【操作】命令à选择【新建】命令à在根目录【默认网站】节点上鼠标右击
图1.10 选择新建虚拟目录
(3) 弹出虚拟目录创建向导,点击【下一步】按钮,如图1.11所示。
图1.11 虚拟目录创建向导
(4)给出虚拟目录别名,用于Web访问名称。我们命名为GuestBook,如图1.12所示
图1.12 命名虚拟目录的别名
(5) 指定Web应用程序的物理位置,如图1.13所示。
图1.13 指定Web应用程序的物理位置
(6)权限设置。一般只选择前两项,如图1.14所示。
图1.14 访问权限设置
(7)虚拟目录创建成功,如图1.15所示。
图1.15 完成虚拟目录创建
在IIS管理器中,我们可以看到已经新建好的虚拟目录,右边列表中已经列出该虚拟目录中的所有程序文件,如图1.16所示。
图1.16 GuestBook虚拟目录浏览
有些Web应用程序要求具有写入权限,比如数据库的更新等,这就要求该文件夹对其Internet 访问用户所在的组具有写入权限。我们找到guestbook文件夹,在该文件夹的属性安全选项中,对Guest权限(本实例系统的计算机名称为“ASPNET”,系统Internet匿名访问用户所在组为Guest,也是系统默认的,有的系统是在User用户组中)的写入权限前打勾,并应用。如果没有写入权限的时候,我们当执行写入数据(比如提交新的留言)时候,就会出现“查询必须为可更新的”提示错误。权限设置如图1.17所示。
图1.17 为虚拟目录增加写入权限