繁体   English   中英

经典ASP IIS7自定义404处理程序

[英]Classic ASP IIS7 Custom 404 Handler

机智地解决了这个问题。

我在一个繁忙的网站上工作,我们已经从IIS6迁移到IIS7,该网站使用自定义404.asp处理程序来处理SEO友好的URL,并从包含的asp脚本中返回正确的内容。

我们已经设法使404方法可以在IIS7上运行,但是如果某处代码中有错误,我们将iis设置为运行500.asp,该错误旨在记录该错误并向用户返回有用的消息。

因此流程应为:

用户类型友好的URL:例如http://www.sitename.com/testarticle/不存在并触发404。asp404在我们的数据库中查找“ testarticle”并返回正确的内容。 都行..

如果错误应调用500.asp-在我们的日志中记录错误(Works)-将Msg返回到屏幕(不起作用-仅获取空白页)

这在IIS6中有效,但是在IIS7中500.asp在我们的日志中记录了错误,但是绝对没有任何内容写到屏幕上-我们只是得到了一个空白屏幕。 非常令人沮丧。

我们尝试更改IIS和web.config中的每个设置的感觉,但无法使其正常工作。

任何帮助,不胜感激。

我前一阵子做了类似的迁移,这是我最终得到的web.config设置(以及相关部分):

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpErrors errorMode="DetailedLocalOnly">
            <remove statusCode="404" subStatusCode="-1" />
            <error statusCode="404" subStatusCode="-1" prefixLanguageFilePath="" path="/common/404.asp" responseMode="ExecuteURL" />
            <remove statusCode="500" subStatusCode="100" />
            <error statusCode="500" subStatusCode="100" prefixLanguageFilePath="" path="/common/500.asp" responseMode="ExecuteURL" />
        </httpErrors>
    </system.webServer>
</configuration>

注意使用的web.config部分。 使用customErrors元素完成后,它对我不起作用。 这是我既可以使用自定义404错误页面重写URL,又可以在Classic ASP中使用自定义500错误进行URL重写的唯一方法。 希望对您有帮助。

这样您会得到一个空白页? 我有一个类似的问题,该解决方案确实很奇怪,但可以肯定地起作用。

我会非常务实,请执行以下操作。

<httpErrors errorMode="Custom" defaultResponseMode="ExecuteURL" existingResponse="Auto">
  <remove statusCode="500" subStatusCode="-1" />
  <error statusCode="500" subStatusCode="100" prefixLanguageFilePath="" path="/500.100.asp" responseMode="ExecuteURL" />
  <remove statusCode="404" subStatusCode="-1" />
  <error statusCode="404" prefixLanguageFilePath="" path="/404.asp" responseMode="ExecuteURL" />
</httpErrors>

如果您以空白页结尾,则该空白页将为“非空白”:

Response.Flush()

当IIS执行/500.100.asp中的代码时,它不会刷新响应,并以空白页结尾。 我保证在IIS7.5 / IIS8和Classic ASP中可能会出现“ 404”和“ 500.100”自定义错误;)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM