未包含在URL中时未处理默认文档

时间:2012-11-01 17:53:27

标签: coldfusion jrun

在JRun(J2EE安装),Windows Server 2008 R2,Java 1.6.0_22上运行ColdFusion 9,0,1,274733

有没有其他人在获取默认文档index.cfm时遇到问题,无法使用ColdFusion?我假设这只是一个问题,因为我们的设置;不同的Web服务器(IIS)和应用程序服务器(ColdFusion)。我无法想象我们是唯一运行此配置的人。我们是吗?

所以这就是问题 如果我们请求http://mysite.com/index.cfm,它就会起作用 如果我们请求http://mysite.com/它不起作用,我们会得到404。

我在IIS服务器上检查了Web连接器的日志文件,可以看到它正在将请求发送到我们的ColdFusion服务器。 ColdFusion服务器正在发回404错误代码,但我无法弄清楚原因。我们在IIS服务器上为index.cfm设置了默认文档。我们还将<welcome-file-list>设置为在我们的应用程序服务器(web.xml)中包含index.cfm

当我们不包含index.cfm时,从我们的网络连接器日志中

2012-11-01 13:37:22 jrISAPI[4544:3600]  ***HttpExtensionProc for JRun ISAPI Extension: uri is "/test/"
2012-11-01 13:37:22 jrISAPI[4544:3600]     HTTP_HOST: servername
2012-11-01 13:37:22 jrISAPI[4544:3600]  filtering /test/ (/test/) HOST=servername
2012-11-01 13:37:22 jrISAPI[4544:3600]  filterRequest:   no match
2012-11-01 13:37:22 jrISAPI[4544:3600]  ExecUrl: request received: URL=/test/
2012-11-01 13:37:22 jrISAPI[4544:3600]  ExecUrl Completion: 404, ErrorCode=2, URL=/test/.

当我们添加index.cfm时,从我们的网络连接器日志中

2012-11-01 13:49:02 jrISAPI[9936:3600]  ***HttpExtensionProc for JRun ISAPI Extension: uri is "/test/index.cfm"
2012-11-01 13:49:02 jrISAPI[9936:3600]     HTTP_HOST: servername
2012-11-01 13:49:02 jrISAPI[9936:3600]  filtering /test/index.cfm (/test/index.cfm) HOST=servername
2012-11-01 13:49:02 jrISAPI[9936:3600]  filterRequest:   matched *.cfm
2012-11-01 13:49:02 jrISAPI[9936:3600]  ***IISWorkerThreadProc for JRun ISAPI Extension: uri is "/test/index.cfm"
2012-11-01 13:49:02 jrISAPI[9936:3600]     ALL_RAW: Connection: Keep-Alive
Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, application (553)
2012-11-01 13:49:02 jrISAPI[9936:3600]  Headers and Values:
... and much more ...

我们通过使用IIS中的URL重写模块将index.cfm附加到URL来解决此问题。它有效,但我的直觉告诉我,我们不应该为了这样的基本功能而这样做。

还有其他人有这个问题吗?你是怎么得到这个的?

编辑添加更多信息

这是我的网站来自IIS服务器的web.config文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
    <handlers>
        <add name="JWildCardHandler" path="*" verb="*" modules="IsapiModule" scriptProcessor="D:\JRun4\lib\wsconfig\1\jrun_iis6_wildcard.dll" resourceType="Unspecified" requireAccess="None" />
        <add name="hbmxmlHandler" path="*.hbmxml" verb="*" modules="IsapiModule" scriptProcessor="D:\JRun4\lib\wsconfig\jrun_iis6.dll" resourceType="Either" responseBufferLimit="0" />
        <add name="cfswfHandler" path="*.cfswf" verb="*" modules="IsapiModule" scriptProcessor="D:\JRun4\lib\wsconfig\jrun_iis6.dll" resourceType="Either" responseBufferLimit="0" />
        <add name="cfrHandler" path="*.cfr" verb="*" modules="IsapiModule" scriptProcessor="D:\JRun4\lib\wsconfig\jrun_iis6.dll" resourceType="Either" responseBufferLimit="0" />
        <add name="cfcHandler" path="*.cfc" verb="*" modules="IsapiModule" scriptProcessor="D:\JRun4\lib\wsconfig\jrun_iis6.dll" resourceType="Either" responseBufferLimit="0" />
        <add name="cfmlHandler" path="*.cfml" verb="*" modules="IsapiModule" scriptProcessor="D:\JRun4\lib\wsconfig\jrun_iis6.dll" resourceType="Either" responseBufferLimit="0" />
        <add name="cfmHandler" path="*.cfm" verb="*" modules="IsapiModule" scriptProcessor="D:\JRun4\lib\wsconfig\jrun_iis6.dll" resourceType="Either" responseBufferLimit="0" />
        <add name="jwsHandler" path="*.jws" verb="*" modules="IsapiModule" scriptProcessor="D:\JRun4\lib\wsconfig\jrun_iis6.dll" resourceType="Either" responseBufferLimit="0" />
        <add name="jspHandler" path="*.jsp" verb="*" modules="IsapiModule" scriptProcessor="D:\JRun4\lib\wsconfig\jrun_iis6.dll" resourceType="Either" responseBufferLimit="0" />
    </handlers>
    <defaultDocument>
        <files>
            <add value="index.cfm" />
        </files>
    </defaultDocument>
    <staticContent>
        <mimeMap fileExtension=".air" mimeType="application/vnd.adobe.air-application-installer-package zip" />
    </staticContent>
</system.webServer>
</configuration>

以下是APP服务器web.xml中的一些文件内容:

<welcome-file-list id="WelcomeFileList_1034546870672">
    <welcome-file>index.cfm</welcome-file>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
</welcome-file-list>

3 个答案:

答案 0 :(得分:1)

在IIS管理器中,尝试为您的网站添加“index.cfm”的默认文档。

答案 1 :(得分:0)

我也在Adobe论坛上发布了这个问题,并且在那里获得了更多的关注。 You can read all of the details here.

似乎我遇到的主要问题是,一旦确定ColdFusion没有'/'映射,IIS就没有将'/index.cfm'传递给Web连接器。我在Web服务器上创建了一个空白(空)index.cfm文件后开始工作。我不记得过去使用分布式模式时必须将CFM文件放在Web服务器上。任何人都可以确认或否认CFM文件需要驻留在两台服务器上才能使其工作(无论如何都不使用重写规则)?

答案 2 :(得分:0)

我在这个派对上有点晚了,但是我一直在研究一个我需要在CF8和CF之间切换的系统。 CF10在同一台开发服务器上非常频繁,因此我一直在处理批处理文件以运行wsconfig以节省一些精力,我遇到了同样的问题。 CF工作正常但从不处理index.cfm / - 如上所述,所有映射似乎都设置正确。

我发现如果你为每个网站添加我的名字而不是使用&#34; -site 0&#34;

,wsconfig工作得更加可靠

因此,例如,手动删除并重新安装IIS上运行的两个站点的连接器

set CFUSION_HOME=C:\ColdFusion10\cfusion
%CFUSION_HOME%\runtime\bin\wsconfig -uninstall 
net start "ColdFusion 10 Application Server"
%CFUSION_HOME%\runtime\bin\wsconfig -ws IIS -site "Default Web Site"
%CFUSION_HOME%\runtime\bin\wsconfig -ws IIS -site "My Website Name"