coldfusion - 带有 ColdFusion 10/11 的 IIS 8/8.5 上的错误 500

标签 coldfusion coldfusion-10 iis-8 coldfusion-11 iis-8.5

如果我的 ColdFusion 脚本中有错误,我会从 IIS 而不是 ColdFusion 收到 500 错误消息。仅当我在 URL 中提供文件名时才会发生这种情况,如果我打开没有脚本名称的 URL(这将打开 index.cfm),则不会发生这种情况。

例如:

  • IIS 错误:http://www.example.com/index.cfm
  • IIS 错误:http://www.example.com/foobar.cfm
  • 冷聚变错误:http://www.example.com/

  • 我可以在我的 3 个 ColdFusion 平台中的 2 个上重现这个问题:
  • 工作:IIS 7.5 和 ColdFusion 10 Update 12(带有更新的连接器)
  • 不是 工作:IIS 8 with ColdFusion 10 Update 12(带有更新的连接器)
  • 不是 工作:IIS 8.5 和 ColdFusion 11

  • 我的 index.cfm 和 foobar.cfm:
    <!--- provoke a coldfusion error --->
    <cfset foo
    

    我的 web.config:
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <httpErrors errorMode="Custom" existingResponse="PassThrough" />
        </system.webServer>
    </configuration>
    

    对我来说,IIS 8 和 IIS 8.5 的 ColdFusion 连接器似乎存在问题。

    最佳答案

    好吧,我终于能够解决这个问题了。

    问题

    我在同一个 IIS 网站下的自己的虚拟目录中运行多个 Web 应用程序。原来加existingResponse="PassThrough"到 web.config 仅在虚拟目录中部分工作。如果没有该设置,我永远不会收到任何 ColdFusion 错误,而是总是看到 IIS 500 错误。如果我添加 existingResponse="PassThrough"在虚拟目录的 web.config 中,仅当您访问该站点而未直接调用 .cfm 脚本(例如:example.com/而不是 example.com/index.cfm)时才会转发 ColdFusion 错误。

    解决方案

    解决方法很简单。我只需要添加 existingResponse="PassThrough"设置为根 IIS 网站的 web.config 以及一切正常。

    我认为这是 IIS 8 和 8.5 中的一个错误,因为我在我的 IIS 7.5 服务器上仔细检查了它并且我不必在根网站上添加该属性。

    关于coldfusion - 带有 ColdFusion 10/11 的 IIS 8/8.5 上的错误 500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23495634/

    相关文章:

    coldfusion - Coldfusion 中的内容处置是否有文件大小限制?

    asp.net - IIS 配置错误 - 此配置部分不能在此路径中使用

    struct - 如何在 ColdFusion <2016 中保留结构中的分配顺序

    coldfusion - 带循环和附件的 CFMAIL

    Coldfusion 10 - 应用程序特定的类路径

    c# - 使用命令行参数安装 IIS8

    ASP.NET 实时网站复制想法

    java - 为什么我不能将我抓取的 HTML 解析为 XML?

    javascript - 如何使用 iframe 组织我的应用程序的主页?

    ColdFusion 与 IIS URL 重写 - 页面永远无法完成加载