IIS7(共2篇)
IIS7 篇1
摘要:在IIS7中所有可以通过IIS Manger和通过直接编辑配置文件完成的管理工作都可以用编程方法实现。我们可以使用程序自动完成一项独立的任务, 例如创建一个网站、同时管理多台服务器, 并开发一些工具帮助非管理员身份的用户执行某些操作, 通过可编程方式, 我们几乎可以完成任何IIS7管理工作。
关键词:.NET,IIS7,网站管理
0 引言
目前, Windows Service 2008和Windows 7平台提供的IIS已经发展到了7.0版本, IIS已经成为一个完整的可配置Web应用程序服务平台, 并且能够与操作系统紧密结合。
在管理本地的少数几台Web服务器时, 利用IIS Manager, 或者通过手动管理方法, 我们就能够很好的完成IIS的管理任务。但是随着网站规模的扩大, 网站服务器数量的增多, 我们迫切需要一种更好的方法来管理服务器。
实际上, 在IIS7中所有可以通过IIS Manger和通过直接编辑配置文件完成的管理工作都可以用编程方法实现。
1 Microsoft.Web.Administration
Microsoft.Web.Administration API是专门为IIS7开发的新功能, 为IIS7编程管理提供了强类型的.NET类的集合。在.NET项目中引用Microsoft.Web.Administration命名空间后, 将可以使用其中包含的一系列预定义类, 利用这些类, 可以使得常用IIS对象的管理工作既简单又直接。
Microsoft.Web.Administration命名空间中根级别的类是ServerManager, 这个类是其他所有类的基类。ServerManager有5个主要派生类:Site、Application、VirtualDirectory、ApplicationPool和WorkerProcess。这些类可以用于网站的创建与配置、启动和停止网站、查看当前运行的工作进程、访问与管理远程服务器和编辑网站配置文件。
一个Application属于一个Site, 而一个VirtualDirectory属于一个Application。这些类型的对象都不能独立存在, 它们必须是父对象的组成部分。利用WorkerProcess类, 我们可以实时观察当前处于运行状态的配置数据, 还可以访问当前运行的工作进程, 甚至可以观察当前处于运行状态的请求。另外ServerManager类为我们提供了一系列方法, 利用这些方法, 我们可以直接管理配置文件。
2 利用.NET平台编程控制IIS7
在.NET平台项目中添加对Microsoft.Web.Administration.dll的引用后就可以使用其提供的类编程控制IIS7了。
在IIS7中创建一个网站可以使用如下代码实现:
网站创建完成后, 我们还可以为网站添加一个应用程序池, 并设置应用程序池的框架版本:
除了网站的创建与配置, 我们还可以通过WorkerProcess类获取当前网站的运行状态:
如果需要编程配置的服务器并不是本地服务器而是远程服务器的话, 只需要改变ServerManager实例的创建方式即可:
有些时候网站建立之后还需要修改网站配置文件, 在ServerManager中同样提供了修改网站配置文件的方法:
通过上述方法, 我们可以用编程的方式完全控制与配置IIS7, 这对管理大量网站和网站服务器提供了一种更加高效的方式。
3 结论
IIS7的架构具有很好的可配置性和可定制性, 支持跨UNC共享进行部署, 还支持跨网站部署。IIS7将配置分配到最合理的文件中保存, 因此提供了很好的可控制性, 并且降低了委托的管理难度, 同时还提供了很好的灵活性。从配置的角度出发, 理解IIS7中的配置文件、location标记、配置节、锁、信息架构扩展和配置路径等内容, 可以帮助我们更好的管理IIS7环境, 同时为IIS7编程配置打下良好基础。
以编程的方式管理与配置IIS7, 为网站服务器的管理提供了更多的方式, 如利用Asp.net我们可以远程管理网站, 利用.NET应用程序我们可以将写好的网站创建方式与配置一次性部署到大量的网站服务器上等。
通过理解IIS7的配置结构以及编程API, 我们能够更有效的管理和扩展IIS7服务器。
参考文献
[1]刘潇潇.基于.NET技术在线考试系统的设计与实现.信息与电脑, 2010, 4.
[2]朱晓辉, 王杰华, 石振国, 陈苏蓉.NET下基于Power Designer和Code Smith的软件自动化开发技术.计算机科学, 2010, 7.
IIS7 篇2
400 无法解析此请求。
401.1 未经授权:访问由于凭据无效被拒绝。
401.2 未经授权: 访问由于服务器配置倾向使用替代身份验证方法而被拒绝。应检查IIS站点的身份验证方式。
401.3 未经授权:访问由于 acl 对所请求资源的设置被拒绝。401.4 未经授权:web 服务器上安装的筛选器授权失败。401.5 未经授权:isapi/cgi 应用程序授权失败。
401.7 未经授权:由于 web 服务器上的 url 授权策略而拒绝访问。
403 禁止访问:访问被拒绝。403.1 禁止访问:执行访问被拒绝。403.2 禁止访问:读取访问被拒绝。403.3 禁止访问:写入访问被拒绝。
403.4 禁止访问:需要使用 ssl 查看该资源。403.5 禁止访问:需要使用 ssl 128 查看该资源。403.6 禁止访问:客户端的 ip 地址被拒绝。403.7 禁止访问:需要 ssl 客户端证书。
403.8 禁止访问:客户端的 dns 名称被拒绝。
403.9 禁止访问:太多客户端试图连接到 web 服务器。403.10 禁止访问:web 服务器配置为拒绝执行访问。403.11 禁止访问:密码已更改。
403.12 禁止访问:服务器证书映射器拒绝了客户端证书访问。403.13 禁止访问:客户端证书已在 web 服务器上吊销。403.14 禁止访问:在 web 服务器上已拒绝目录列表。
403.15 禁止访问:web 服务器已超过客户端访问许可证限制。403.16 禁止访问:客户端证书格式错误或未被 web 服务器信任。403.17 禁止访问:客户端证书已经到期或者尚未生效。
403.18 禁止访问:无法在当前应用程序池中执行请求的 url。403.19 禁止访问:无法在该应用程序池中为客户端执行 cgi。403.20 禁止访问:passport 登录失败。
404 找不到文件或目录。
404.1 文件或目录未找到:网站无法在所请求的端口访问。
注意 404.1 错误只会出现在具有多个 ip 地址的计算机上。如果在特定 ip 地址/端口组合上收到客户端请求,而且没有将 ip 地址配置为在该特定的端口上侦听,则 iis 返回 404.1 http 错误。例如,如果一台计算机有两个 ip 地址,而只将其中一个 ip 地址配置为在端口 80 上侦听,则另一个 ip 地址从端口 80 收到的任何请求都将导致 iis 返回 404.1 错误。只应在此服务级别设置该错误,因为只有当服务器上使用多个 ip 地址时才会将它返回给客户端。
404.2 文件或目录无法找到:锁定策略禁止该请求。
404.3 文件或目录无法找到:mime 映射策略禁止该请求。
405 用于访问该页的 http 动作未被许可。
406 客户端浏览器不接受所请求页面的 mime 类型。
407 web 服务器需要初始的代理验证。
410 文件已删除。
412 客户端设置的前提条件在 web 服务器上评估时失败。
414 请求 url 太大,因此在 web 服务器上不接受该 url。
500 服务器内部错误。
500.11 服务器错误:web 服务器上的应用程序正在关闭。
500.12 服务器错误:web 服务器上的应用程序正在重新启动。500.13 服务器错误:web 服务器太忙。
500.14 服务器错误:服务器上的无效应用程序配置。500.15 服务器错误:不允许直接请求 global.asa。500.16 服务器错误:unc 授权凭据不正确。500.17 服务器错误:url 授权存储无法找到。500.18 服务器错误:url 授权存储无法打开。
500.19 服务器错误:该文件的数据在配置数据库中配置不正确。500.20 服务器错误:url 授权域无法找到。500 100 内部服务器错误:asp 错误。501 标题值指定的配置没有执行。
502 web 服务器作为网关或代理服务器时收到无效的响应。
IIS 6.0 asp 错误解析
事件 id 描述
0100 内存不足。无法分配所需的内存。0101 意外错误。函数返回 |。
0102 要求字符串输入。函数需要字符串输入。0103 要求数字输入。函数需要数字输入。0104 不允许操作。
0105 索引超出范围。数组索引超出范围。0106 类型不匹配。遇到未处理的数据类型。
0107 数据大小太大。请求中发送的数据大小超出允许的限制。0108 创建对象失败。创建对象 %s 时出错。0109 成员未找到。0110 未知的名称。0111 未知的界面。0112 参数丢失。
0113 脚本超时。超过了脚本运行的最长时间。可以通过为 server.scripttimeout 属性指定一个新值或在 iis 管理工具中修改值来更改此限制。0114 对象不可用于自由线程。应用程序对象仅接受自由线程对象;而对象 %s 不可用于自由线程。0115 意外错误。外部对象中发生一个可捕捉的错误(%x)。脚本无法继续运行。0116 脚本分隔符结束标记丢失。脚本块缺少脚本结束标记(%>)。
0117 脚本结束标记丢失。脚本块缺少脚本结束标记()或标记结束符号(>)。0118 对象的结束标记丢失。对象块缺少对象结束标记()或标记结束符号(>)。
0119 classid 或 progid 属性丢失。对象实例 | 在对象标记中需要有效的 classid 或 progid。0120 runat 属性无效。脚本标记或对象标记的 runat 属性只能有 server 值。0121 对象标记中的范围无效。对象实例 | 的作用范围不能是 application 或 session。要创建有 session 或 application 作用范围的对象实例,请将在 global.asa 文件中加入 object 标记。
0122 对象标记中的范围无效。对象实例 | 必须有 application 或 session 作用范围。这将应用于所有在 global.asa 文件内创建的对象。
0123 缺少 id 属性。缺少 object 标记所需的 id 属性。
0124 language 属性丢失。缺少 object 标记所需的 language 属性。0125 属性结束标记丢失。| 属性的值没有结束分隔符。0126 未找到 include 文件。未找到 include 文件 |。
0127 html 注释的结束标记丢失。html 注释或在服务器端的包含文件缺少结束标记(-->)。0128 file 或 virtual 属性丢失。include 文件名必须用 file 或 virtual 属性指定。0129 未知的脚本语言。服务器上找不到脚本语言 |。
0130 file 属性无效。file 属性 | 不能以斜杠或反斜杠开始。
0131 不允许的父路径。include 文件 | 不能包含..来表示父目录。0132 编译错误。无法处理 active server page |。
0133 classid 属性无效。对象标记有一个无效的 classid |。0134 progid 属性无效。对象有一个无效的 progid |。
0135 循环包含。文件 | 包含它本身(可能是非直接地包含)。请检查包含文件中的其他 include 语句。0136 对象实例名无效。对象实例 | 试图使用一个保留名称。这个名称被 active server pages 的内部对象使用。
0137 全局脚本无效。脚本块必须是允许的 global.asa 过程之一。global.asa 文件中不允许在 内使用脚本指令。允许的过程名称是 application_onstart、application_onend、session_onstart 或 session_onend。
0138 脚本块嵌套。脚本块不可放在另一个脚本块内。
0139 嵌套对象。对象标记不能放在另一个对象标记内。
0140 页命令次序有误。@ 命令必须是 active server page 中的第一个命令。
0141 页命令重复。@ 命令只可以在 active server page 中使用一次。
0142 线程令牌错误。无法打开线程令牌。
0143 应用程序名无效。未找到有效的应用程序名称。
0144 初始化错误。初始化时页级别的对象列表失败。
0145 新应用程序失败。无法添加新的应用程序。0146 新会话失败。无法添加新的会话。
0147 500 服务器错误。
0148 服务器太忙。
0149 正在重新启动应用程序。重启动应用程序期间无法处理请求。
0150 应用程序目录错误。无法打开应用程序目录。
0151 更改通知错误。无法创建更改通知事件。
0152 安全错误。处理用户安全凭据时发生错误。
0153 线程错误。新线程请求已失败。
0154 http 头写入错误。http 头无法写入客户端浏览器。
0155 页内容写入错误。页内容无法写入客户端浏览器。
0156 头错误。http 头已经写入到客户端浏览器。任何 http 头必须在写入页内容之前修改。
0157 启用缓冲。缓冲启用后不能关闭。
0158 url 丢失。url 是必需的。
0159 缓冲已关闭。缓冲必须启用。
0160 日志记录错误。将条目写入日志失败。
0161 数据类型错误。将 variant 转换为 string 变量失败。
0162 不能修改 cookie。不能修改 cookie aspsessionid。它是一个保留的 cookie 名。
0163 逗号用法无效。日志条目内不可使用逗号。请选择另一个分隔符。
0164 timeout 值无效。指定的 timeout 值无效。
0165 sessionid 错误。无法创建 sessionid 字符串。
0166 对象未初始化。试图访问未初始化的对象。
0167 会话初始化错误。初始化 session 对象时发生错误。
0168 禁止的对象使用。session 对象中不能保存内部对象。
0169 缺少对象信息。session 对象中不能保存信息不全的对象。需要对象的线程模型信息。
0170 删除会话错误。无法正确删除 session。
0171 路径丢失。必须为 mappath 方法指定 path 参数。0172 路径无效。mappath 方法的路径必须是虚拟路径。使用了一个实际的路径。
0173 路径字符无效。mappath 方法的 path 参数中指定了一个无效字符。
0174 多个路径字符无效。mappath 方法的 path 参数中指定了无效的 / 或。
0175 不允许的路径字符。mappath 方法的 path 参数中不允许使用..字符。
0176 未找到路径。mappath 方法的 path 参数与已知路径不符。
0177 server.createobject 失败。%s
0178 server.createobject 访问错误。检查权限时调用 server.createobject 失败。对此对象的访问被拒绝。
0179 应用程序初始化错误。初始化 application 对象时发生错误。
0180 禁止的对象使用。application 对象中不能保存内部对象。
0181 线程模型无效。使用单元线程模型的对象不能存储在 application 对象中。
0182 对象信息丢失。application 对象中不能保存信息不全的对象。需要此对象的线程模型信息。
0183 空 cookie 项。不能保存空项 cookie。
0184 cookie 名称丢失。必须为 cookie 指定名称。
0185 默认属性丢失。未找到对象的默认属性。
0186 证书分析错误。
0187 对象添加冲突。无法将对象添加到应用程序。应用程序被另一个要求添加对象的请求锁定。
0188 禁止的对象使用。无法将用对象标记创建的对象添加到会话内部。
0189 禁止的对象使用。无法将用对象标记创建的对象添加到应用程序内部。
0190 意外错误。释放外部对象时发生可捕获错误。
0191 意外错误。外部对象的 onstartpage 方法中发生可捕获错误。
0192 意外错误。外部对象的 onendpage 方法中发生可捕获错误。
0193 onstartpage 失败。外部对象的 onstartpage 方法中出错。
0194 onendpage 失败。外部对象的 onendpage 方法中出错。
0195 无效的服务器方法调用。session_onend 和 application_onend 期间不能调用 server 对象的此方法。
0196 无法启动进程外组件。只能使用 inproc 服务器组件。若要使用 localserver 组件,必须设置 aspallowoutofproccomponents 配置数据库设置。请参阅帮助文件,了解重要注意事项。
0197 禁止的对象使用。不能将有单元模型行为的对象添加到应用程序内部对象。
0198 服务器正在关闭。不能处理请求。
0199 禁止的对象使用。不能将 jscript 对象添加到会话。
0200 超出 expires 属性范围。为 expires 指定的日期和时间在 1980 年 1 月 1 日之前或在 2038 年 1 月 19 日 3:14:07 gmt 之后。
0201 默认脚本语言无效。为此应用程序指定的默认脚本语言无效。
0202 代码页丢失。代码页属性丢失。
0203 代码页无效。指定的代码页属性无效。
0204 codepage 值无效。指定的 codepage 值无效。
0205 更改通知。创建更改通知事件失败。
0206 不能调用 binaryread。使用 request.form 集合后不能调用 binaryread。
0207 不能使用 request.form。调用 binaryread 后不能使用 request.form 集合。
0208 不能使用通用 request 集合。调用 binaryread 后不能使用通用 request 集合。
0209 transaction 属性的值非法。transaction 属性只能是 required、requires_new、supported 或 not_supported。
0210 方法未实施。此方法尚未实施。
0211 对象超出范围。引用内置的 asp 对象,此操作已不再有效。
0212 无法清除缓冲区。客户端调试启用时,response.flush 之后不能有 response.clear。
0214 路径参数无效。path 参数超出允许的最大长度。
0215 enablesessionstate 属性的值非法。enablesessionstate 属性的值只能是 true 或 false。
0216 msdtc 服务未运行。如果未运行 msdtc 服务,则不能运行事务性网页。
0217 对象标记中的范围无效。对象的作用范围必须是 page、session 或 application。0218 lcid 丢失。lcid 属性丢失。
0219 lcid 无效。指定的 lcid 不可用。
0220 不允许请求 global.asa。不允许请求指向 global.asa 的 url。
0221 @ 命令指令无效。指定的 | 选项未知或无效。
0222 typelib 规范无效。metadata 标记包含无效的类型库规范。
0223 未找到 typelib。metadata 标签含有的类型库规范和注册表项不符。
0224 无法加载 typelib。无法加载 metadata 标记中指定的类型库。
0225 无法包装 typelib。不能通过 metadata 标记中指定的类型库创建类型库包装对象。
0226 无法修改 staticobjects。运行时无法修改 staticobjects 集合。
0227 server.execute 失败。调用 server.execute 失败。
0228 server.execute 错误。加载此页时调用 server.execute 失败。
0229 server.transfer 失败。调用 server.transfer 失败。
0230 server.transfer 错误。加载此页时调用 server.transfer 失败。
0231 server.execute 错误。使用的 url 格式无效,或者使用了完全限定的绝对 url。请使用相对 url。
0232 cookie 规范无效。metadata 标记包含无效的 cookie 规范。
0233 无法加载 cookie 脚本源。无法加载 metadata 标记中指定的 cookie 脚本源文件。
0234 包含指令无效。脚本块中可能没有服务器端包含文件指令。
IIS 7.5 实验总结
备份IIS设置(配置文件):C:WindowsSystem32inetsrvconfig目录。还原时直接覆盖即可。
系统自带的备份还原工具 C:WindowsSystem32inetsrvAppcmd.exe 只能在cmd命令运行
★创建备份
appcmd add backup 备份名称
★列出所有备份 appcmd list backup
★还原备份
appcmd restore backup 备份名称 备份文件默认在“C:WindowsSystem32inetsrvbackup”目录下,每个子目录对应一个“备份名称”。
WEB 服务
若不用域名访问站点,则不要填“主机名”:
NTFS权限保持默认即可:
关于“应用程序池”
每个站点都可以设置不同的“托管管道模式”,默认为“集成”。区别:可以认为“集成”效率高,“经典”兼容性好。在生产环境中,应根据开发时的模式决定。
FTP 服务
新建FTP站点:
可以为不同的FTP虚拟目录分别指定权限:每一级虚拟目录都有自己的“FTP授权规则”
【IIS7】推荐阅读: