配置IIS之虚拟目录 |
您所在的位置:网站首页 › 虚拟路径和真实路径 › 配置IIS之虚拟目录 |
什么是IIS虚拟目录?有什么优点?
虚拟目录指在站点下建立一个虚拟子目录,指定一个固定的物理路径做为站点的应用路径。 1、虚拟目录与父级站点共用一个应用程序池,例如:站点TestWeb(c:\Inetpub\wwwroot\ TestWeb)下建立了SubTestA(D:\SubTestA)的虚拟目录.若TestWeb为设定了Framework V2.0,则SubTestA也必须是Framework V2.0的应用程序,否则将给带来Framework不匹配的各种错误。 2、虚拟目录必须将可执行文件(dll等)放置在父级站点的bin目录下。 3、虚拟目录中的web.config文件继承父级站点的web.config.就是说如果父级站点声明过的引用,在虚拟目录下的web.config中不应重复声明 4、虚拟目录中的应用其根目录为父级站点的根目录 5、虚拟目录中的AppSetting.config设置应使用相对路径来进行引用。 IIS中虚拟目录实现的目的是什么?虚拟目录对应到URL的名称 如 http://zhidao.baidu.com/question/ 中question就是一个虚拟目录 很多时候,上传的文件多了,架设服务器当初设定的主目录所在盘空间往往就不够了,怎么办?这就需要设置虚拟目录。虚拟目录就是将其他目录以映射的方式虚拟到该FTP服务器的主目录下,这样,一个FTP服务器的主目录实质上就可以包括很多不同盘符、不同路径的目录,而不会受到所在盘空间的限制了。当用户登录到主目录下,还可以根据该账户的权限对它进行相应的操作,就像操作主目录下的子目录一样。如果用户被锁定在主目录下,这项功能将允许他们访问主目录之外的其它目录。 主目录设置的权限如果与虚拟目录的权限发生冲突,则以主目录权限为准。比如主目录设置的权限为读取和写入,而虚拟目录的权限只设置为读取,则其权限将会被主目录权限覆盖掉,自动拥有写入权限。 IIS 支持虚拟目录,通过在“服务器属性”对话框中的“目录”标签可以管理虚拟目录。建立虚拟目录对于管理 WEB 站点具有非常重要的意义。首先,虚拟目录隐藏了有关站点目录结构的重要信息。因为在浏览器中,客户通过选择“查看源代码”,很容易就能获取页面的文件路径信息,如果在 WEB 页中使用物理路径,将暴露有关站点目录的重要信息,这容易导致系统受到攻击。其次,只要两台机器具有相同的虚拟目录,你就可以在不对页面代码做任何改动的情况下,将 WEB 页面从一台机器上移到另一台机器。还有就是,当你将 WEB 页面放置于虚拟目录下后,你可以对目录设置不同的属性,如:Read、Excute、Script。读访问表示将目录内容从 IIS 传递到浏览器。而执行访问则可以使在该目录内执行可执行的文件。当你需要使用 ASP 时,就必须将你存放 .asp 文件的目录设置为“Excute(执行)”。作者建议大家在设置 WEB 站点时,将 HTML 文件同 ASP 文件分开放置在不同的目录下,然后将 HTML 子目录设置为“读”,将 ASP 子目录设置为“执行”,这不仅方便了对 WEB 的管理,而且最重要的提高了 ASP 程序的安全性,防止了程序内容被客户所访问。因为在今年 7 月底的时候 IIS 被一些网络高手发现了一个可怕的 bug,那就是,当你在一个站点的 .asp 文件后加上 ::$DATA 后,客户将能在浏览器中看到该 .asp 文件的所有源代码,这对于一个站点来说是非常可怕的。当然微软已经针对这个 bug,编写了补丁,但是为了彻底杜绝这种可能性的发生,作者还一建议大家不要将 .asp 所在的目录设置为可读。 在IIS中添加虚拟目录虚拟目录就是站点物理路径下的一个文件夹,同一站点可以创建多个虚拟目录,分别存放不同内容的文件。 方法/步骤打开“Internet信息服务(IIS)管理器”,在左侧窗口单击展开目标站点。 鼠标右击要添加虚拟目录的站点,在弹出的菜单中选择“添加虚拟目录”选项。 在弹出对话框的“别名”文本框中输入虚拟目录名称,然后单击“物理路径”右侧的按钮。 在弹出的浏览文件夹对话框中选择虚拟目录的目标文件夹,然后单击“确定”按钮。 返回添加虚拟目录对话框,可以看到虚拟目录的物理路径,如果要设置虚拟目录的连接账户,则单击“连接为”按钮。 如果要指定特定的连接用户,则选择“特定用户”单选钮,然后单击“设置”按钮,在弹出的对话框中输入用户名和密码;否则保持默认设置,通过应用程序用户连接。 返回添加虚拟目录对话框,单击“测试设置”按钮可以测试连接是否通畅,如果不通畅一般是由于文件访问权限导致,可以在虚拟目录指向的文件夹的访问权限中添加连接用户,最后单击“确定”按钮,创建虚拟目录。 (一).Web.Config是以XML文件规范存储,配置文件分为以下格式 1.配置节处理程序声明 特点:位于配置文件的顶部,包含在标志中。 2.特定应用程序配置 特点: 位于中。可以定义应用程序的全局常量设置等信息. 3.配置节设置 特点: 位于节中,控制Asp.net运行时的行为. 4.配置节组 特点: 用标记,可以自定义分组,可以放到内部或其它标记的内部. (二).配置节的每一节 1.节 根元素,其它节都是在它的内部. 2.节 此节用于定义应用程序设置项。对一些不确定设置,还可以让用户根据自己实际情况自己设置 用法: I. 定义了一个连接字符串常量,并且在实际应用时可以修改连接字符串,不用修改程式代码. II. 定义了一个错误重定向页面. III. 可以通过新的XML来扩展配置内容。 new.xml写法为:
3.节 格式: I. default language: 定义后台代码语言,可以选择C#和VB.net两种语言. II. debug : 为true时,启动aspx调试;为false不启动aspx调试,因而可以提高应用程序运行时的性能。一般程序员在开发时设置为true,交给客户时设置为false. 4.节 格式: I. mode : 具有On,Off,RemoteOnly 3种状态。On表示始终显示自定义的信息; Off表示始终显示详细的asp.net错误信息; RemoteOnly表示只对不在本地Web服务器上运行的用户显示自定义信息. II. defaultRedirect: 用于出现错误时重定向的URL地址. 是可选的 III. statusCode: 指明错误状态码,表明一种特定的出错状态. IV. redirect:错误重定向的URL. 5.节 格式: I. requestEncoding: 它用来检查每一个发来请求的编码. II. responseEncoding: 用于检查发回的响应内容编码. III. fileEncoding: 用于检查aspx,asax等文件解析的默认编码. 6.节 格式: I. mode: 分为off,Inproc,StateServer,SqlServer几种状态 II. stateConnectionString :指定Asp.net应用程序存储远程会话状态的服务器名,默认为本机 III. sqlConnectionString: 当用会话状态数据库时,在这里设置连接字符串 IV. Cookieless: 设置为true时,表示不使用cookie会话状态来标识客户; 否则,相反. V. TimeOut: 用来定义会话状态存储的时间,超过期限,将自动终止会话. 7.节 格式: I. Windows: 使用IIS验证方式 II. Forms: 使用基于窗体的验证方式 III. Passport: 采用Passport cookie验证模式 IV. None: 不采用任何验证方式 里面内嵌Forms节点的属性涵义: I. Name: 指定完成身份验证的Http cookie的名称. II. LoginUrl: 如果未通过验证或超时后重定向的页面URL,一般为登录页面,让用户重新登录 III. Protection: 指定 cookie数据的保护方式. 可设置为: All None Encryption Validation四种保护方式 a. All表示加密数据,并进行有效性验证两种方式 b. None表示不保护Cookie. c. Encryption表示对Cookie内容进行加密 d. validation表示对Cookie内容进行有效性验证 IV. TimeOut: 指定Cookie的失效时间. 超时后要重新登录.
从文件名就可以看出是做配置用的,比如配置自定义错误页面,debug,等等 存放连接字符串是最基本的用法, 高级一点可以配置httpmodule,httphandler... 再高级一点可以写一个继承自IConfigurationSectionHandler,添加自定义的配置节... 功能是很强大的 ASP.NET提供了一个丰富而可行的配置系统,以帮助管理人员轻松快速的建立自己的WEB应用环境。 ASP.NET提供的是一个层次配置架构,可以帮助WEB应用、站点、机器分别配置自己的扩展配置数据。 ASP.NET的配置系统具有以下优点: ●ASP.NET允许配置内容可以和静态内容、动态页面和商业对象放置在同一应用的目录结构下。当管理人员需要安装新的ASP.NET应用时,只需要将应用目录拷贝到新的机器上即可。 ●ASP.NET的配置内容以纯文本方式保存,可以以任意标准的文本编辑器、XML解析器和脚本语言解释、修改配置内容。 ●ASP.NET 提供了扩展配置内容的架构,以支持第三方开发者配置自己的内容。 ●ASP.NET配置文件的更修被系统自动监控,无须管理人员手工干预。 4.2.2配置文件的规则 ASP.NET的配置文件是基于XML格式的纯文本文件,存在于应用的各个目录下,统一命名为“config.web”。它决定了所在目录及其子目录的配置信息,并且子目录下的配置信息覆盖其父目录的配置。 WINNT\Microsoft.NET\Framework\版本号\下的config.web为整个机器的根配置文件,它定义了整个环境下的缺省配置。 缺省情况下,浏览器是不能够直接访问目录下的config.web文件。 在运行状态下,ASP.NET会根据远程URL请求,把访问路径下的各个config.web配置文件叠加,产生一个唯一的配置集合。举例来说,一个对URL:http://localhost/webapp/owndir/test.aspx的访问,ASP.NET会根据以下顺序来决定最终的配置情况: 1..\Microsoft.NET\Framework\v.1.00\config.web (缺省配置文件) 2..\webapp\config.web (应用的配置) 3..\webapp\owndir\config.web (自己的配置) 4.2.3配置文件的语法规则 (1)标识 配置内容被置于config.web文件中的标记和之间。 格式: 配置内容… (2)配置段句柄说明 ASP.NET的配置文件架构并未指定任何文件格式或者是支持的配置属性。相反的,它提出了“配置段句柄申明”的概念来支持任意的用户定义配置段。 格式: (3)配置段 具体定义配置的内容,供应用使用。 以下例子定义了一个“httpmodules”配置段,设置了系统http相关的处理模块 4.2. 4 ASP.NET定义的标准配置段 (1)httpmodule 段: 定义了应用的http请求的处理模块以及诸如安全、日志之类的应用方式 (2)httphandlers 段: 负责映射URLs到IhttpHandler类 (3)sessionstat 段: 负责配置http模块的会话状态 (4)globalization 段:配置应用的公用设置 (5)compilation 段: 配置ASP.NET的编译环境 (6)trace 段:配置ASP.NET的跟踪服务 (7)security 段: ASP.NET的安全配置 (8)iisprocessmodel 段: 在IIS上配置ASP.NET的处理模式 (9)browercaps 段: 配置浏览器的兼容部件 4.2. 5 一个配置读出的例子 (1)config.web配置文件 (2)读出其内容 sub page_load(s as object ,e as eventargs) '取出test配置段的key键的值 Dim CfgSection As Hashtable = Context.GetConfig("test") Dim Msg As String = CStr(CfgSection("key")) lblMsg.text=Msg end sub 配置信息的读取 config.web中"test"配置段中key的内容为: (3)运行结果 4.2. 6 Config.web配置实例
|
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |