ColdFusion 2016 文件未找到错误
ColdFusion 2016 file not found error
我在 windows 8.1 上安装了 ColdFusion 2016 开发者版。我将我的 CF 项目文件夹 MyCFProject 复制到 C:\ColdFusion2016\cfusion\wwwroot\CFIDE
目录并打开 http://localhost/MyCFProject/index.cfm
,其中 index.cfm 在 MyCFProject 文件夹中。这个 url 工作正常,我可以 运行 成功地使用该应用程序。但是我复制了另一个项目文件夹 MySecondProject
,它也有一个 index.cfm 文件并打开 url http://localhost/MySecondProject/index.cfm
,这给了我以下错误。这两个项目都是从安装了 ColdFusion 11 的 Windows 7 复制的,并且两个项目在那里都可以正常工作:
错误:
File not found: /MySecondProject/Index.cfm
Browser Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
Remote Address ::1
Referrer
Date/Time 23-Jul-16 08:00 PM
Stack Trace
coldfusion.runtime.TemplateNotFoundException: File not found: /MySecondProject/Index.cfm
at coldfusion.filter.PathFilter.invoke(PathFilter.java:145)
at coldfusion.filter.LicenseFilter.invoke(LicenseFilter.java:30)
at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94)
at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:60)
at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62)
at coldfusion.CfmServlet.service(CfmServlet.java:219)
at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
我发现了错误,现在可以了。在ColdFusion 11中,当我将项目目录复制到路径C:\ColdFusion11\cfusion\wwwroot\CFIDE
时,它会自动出现在IIS7.5中(可能是CF安装设置了这个路径到IIS)。但是,在 ColdFusion 2016 中,您似乎必须自己创建一个虚拟目录并将其指向您的应用程序的物理路径(在我的例子中,就是上述路径)。另一种可能性是,在 ColdFusion 2016 安装期间,有一个选项可以将 C:\ColdFusion2016\cfusion\wwwroot\CFIDE
指向 IIS8,但我要么忽略它,要么选择退出该安装选项。
观察:此外,我注意到在 CF 11 中,当您将项目目录复制到 C:\ColdFusion11\cfusion\wwwroot\CFIDE
时,它会连接到 IIS,当您从IIS 你得到主页 URL 为 http:/localhost/CFIDE/MyProject
;而在 ColdFusion 2016 中,当您将项目文件夹复制到 C:\ColdFusion2016\cfusion\wwwroot\CFIDE
时,您仍然需要在 IIS 中手动创建一个虚拟目录并将其指向 C:\ColdFusion2016\cfusion\wwwroot\CFIDE
并且您站点的 URL 是 http://localhost/MyProject
[URL 中没有 CFIDE 文件夹]。可能和我安装CF 2016时选择的安装选项有关
我在 windows 8.1 上安装了 ColdFusion 2016 开发者版。我将我的 CF 项目文件夹 MyCFProject 复制到 C:\ColdFusion2016\cfusion\wwwroot\CFIDE
目录并打开 http://localhost/MyCFProject/index.cfm
,其中 index.cfm 在 MyCFProject 文件夹中。这个 url 工作正常,我可以 运行 成功地使用该应用程序。但是我复制了另一个项目文件夹 MySecondProject
,它也有一个 index.cfm 文件并打开 url http://localhost/MySecondProject/index.cfm
,这给了我以下错误。这两个项目都是从安装了 ColdFusion 11 的 Windows 7 复制的,并且两个项目在那里都可以正常工作:
错误:
File not found: /MySecondProject/Index.cfm
Browser Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
Remote Address ::1
Referrer
Date/Time 23-Jul-16 08:00 PM
Stack Trace
coldfusion.runtime.TemplateNotFoundException: File not found: /MySecondProject/Index.cfm
at coldfusion.filter.PathFilter.invoke(PathFilter.java:145)
at coldfusion.filter.LicenseFilter.invoke(LicenseFilter.java:30)
at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94)
at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:60)
at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62)
at coldfusion.CfmServlet.service(CfmServlet.java:219)
at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
我发现了错误,现在可以了。在ColdFusion 11中,当我将项目目录复制到路径C:\ColdFusion11\cfusion\wwwroot\CFIDE
时,它会自动出现在IIS7.5中(可能是CF安装设置了这个路径到IIS)。但是,在 ColdFusion 2016 中,您似乎必须自己创建一个虚拟目录并将其指向您的应用程序的物理路径(在我的例子中,就是上述路径)。另一种可能性是,在 ColdFusion 2016 安装期间,有一个选项可以将 C:\ColdFusion2016\cfusion\wwwroot\CFIDE
指向 IIS8,但我要么忽略它,要么选择退出该安装选项。
观察:此外,我注意到在 CF 11 中,当您将项目目录复制到 C:\ColdFusion11\cfusion\wwwroot\CFIDE
时,它会连接到 IIS,当您从IIS 你得到主页 URL 为 http:/localhost/CFIDE/MyProject
;而在 ColdFusion 2016 中,当您将项目文件夹复制到 C:\ColdFusion2016\cfusion\wwwroot\CFIDE
时,您仍然需要在 IIS 中手动创建一个虚拟目录并将其指向 C:\ColdFusion2016\cfusion\wwwroot\CFIDE
并且您站点的 URL 是 http://localhost/MyProject
[URL 中没有 CFIDE 文件夹]。可能和我安装CF 2016时选择的安装选项有关