自定义 IIS 6 错误信息吗?
2005-10-13 19:29
239 查看
我可以自定义 IIS 6 错误信息吗?
问:在我们的 IIS 6 服务器上,偶尔我们必须关闭生产应用程序池以进行维护。在此期间,IIS 6 仅向客户端发送最基本的消息(如下所示):
Http 错误日志显示以下内容:
2004-08-26 17:06:33 127.0.0.1 1035 127.0.0.1 80 HTTP/1.1 GET / 503 1 Disabled
从此处,我们可以看到将该错误被记录为 503.1,但用户并没有得到此信息或任何其他信息。我们希望能够自定义此错误信息,以便展示我们公司的徽标并向客户提供有关站点何时恢复的其他信息。应该怎么做?
答:
IIS 6 体系结构引入了可在内核模式下运行的 http.sys 组件。可以对很多 IIS 6 错误进行自定义,但不能修改 http.sys 传递的那些错误。这其中有两个原因。
第一,不能在内核模式下运行任何用户代码是至关重要的。很多自定义的错误页实际上是脚本或程序,它们对错误进行处理以便根据我们组织的需要采取特定的操作。如果允许这些程序在内核模式下运行并且代码有错误,则它们可能会产生严重的安全或性能问题。
第二,如果您不在内核模式下运行代码,则必须跳到用户模式下执行代码;而由于应用程序池不可用,那么应该使用哪个池呢?您需要做很多假设。
抛开这些复杂问题不说,我不否认能够向至少一个自定义静态页发送这些请求是非常有用的。
在该功能出现之前(我不知道是否会出现),您还有其他的选择。一种选择是设置第二台服务器,它是 NLB 群集中使用的第一台服务器的克隆。这种布局的一个主要好处是,可以将整个服务器脱机而不会造成服务中断。
或者,在同一服务器上创建一模一样的网站,但使用不同的应用程序池。将生产站点关闭并打开备用站点。这通常比想象的要容易一些。
最后,您可以建立一个简单的站点,用于传送符合您要求的“站点正在维护中”消息。建立此站点以响应在生产站点上使用的相同“IP+端口号+主机标题”配置,并将其配置为运行特有的应用程序池。关闭生产站点并打开“辅助”站点。在维护完成后,您可以关闭辅助站点,并启用生产站点。
其中的任何选择都允许您控制在将站点脱机进行维护时所执行的操作。
相关文章推荐
- win2003配置IIS ,发布asp.net 时出现错误 “分析器错误信息: 无法识别的属性“type”。” 的解决方法
- 用err.raise自定义错误信息
- PHP自定义错误处理器处理出错信息
- asp.net web.config 自定义错误信息
- MVC数据验证原理及自定义ModelValidatorProvider实现无编译修改验证规则和错误信息
- 如何自定义Struts2表单验证后的错误信息显示格式/样式
- IIS错误信息--另一个程序正在使用此文件,进程无法访问
- CAS之5.2x版本自定义错误信息-yellowcong
- 程序员最痛苦的事,就是程序出错;程序员最最痛苦的事,就是程序出错了还没有错误信息!--IIS Service Unavailable 问题如何解决
- Jquery ajax执行顺序 返回自定义错误信息
- IIS 7.5中设置站点Windows认证失败三次后弹出自定义错误页面的方法
- 如何自定义oauthauthorizationserverprovider错误信息?
- 如何自定义Struts2表单验证后的错误信息显示格式
- MVC验证06-自定义错误信息
- 自定义错误信息并写入到Elmah
- 自定义Struts2表单验证后的错误信息显示格式
- 自定义错误信息在各个浏览器表现不同
- laravel dingo API返回自定义错误信息
- Ext.js5表单—(自定义错误信息)(formBind)(53)
- Jquery ajax执行顺序 返回自定义错误信息