经过多次尝试从 ColdFusion 8 Standard 服务器迁移到 ColdFusion 10 Standard 服务器后,感觉我“快”完成了。我使用的是 Adobe 网站上的 64 位安装程序。
我正在使用带有 IIS 7.0 的 Windows Server 2008(64 位)服务器。
安装本身进展顺利,服务启动并运行。但在安装结束时,系统显示“ColdFusion 已安装,但有错误”,并生成一个日志文件。
日志文件内容如下:
迁移错误::检查“C:\ColdFusion8”是否为有效目录,以及是否安装了 ColdFusion MX 6 或 ColdFusionMX 7
下文进一步指出:
状态:警告
附加说明:警告 - 无法从以前版本的 ColdFusion 迁移设置
自定义操作:
com.macromedia.ia.action.MigrateColdFusionAction
状态:错误
附加说明:错误 - class com.macromedia.ia.action.MigrateColdFusionAction NonfatalInstallException null
这应用程序主机配置文件具有引用 ColdFusion 10 目录的新 XML,但 IIS 仍在使用 ColdFusion 8。根据上面日志中的消息,我还猜测 CF 管理员中的设置尚未迁移。
我已按照 Adobe 网站上的说明进行操作,包括确保网上邻居,电脑生成图像处理,ISAPI 扩展, 和ISAPI 过滤器已全部启用。我还启用了IIS 6 元数据库兼容性尽管我认为没必要这么做。
有没有其他人遇到过类似的 ColdFusion 10 和 IIS 7 问题。目前我已经卸载了 CF 10 并恢复到
答案1
从 CF8 到 CF10 的迁移发生了重大变化。
请小心并仔细检查您的 DB 连接,CF10 中提供了新的连接器。
安装文件夹也可能会产生问题。ColdFusion 8 文件夹的路径为, c:/coldfusion8/lib
但 ColdFusion 10 的路径则不同c:/coldfusion10/cfusion/lib
。
答案2
我将使用 regedit 工具对“C:\ColdFusion”执行注册表值搜索,以查看 CF 版本和安装文件路径之间是否存在一些映射异常。我还将查看 IIS 管理控制台设置,以检查 .cfm 扩展名和 .dll(处理程序)之间的处理程序模块映射。安装程序正在寻找安装到目录中的先前版本 6 或 7 CF,而该目录的路径表明版本 8 的安装位于该目录中,这对我来说似乎是一个映射问题。也许是版本 6 或 7 的卸载不当,导致在更新某些注册表设置以反映版本 8 设置之前未删除所有注册表设置?
答案3
如果唯一的问题是迁移失败,也许可以完全跳过迁移,只需从 Coldfusion8/lib/neo-datasource.xml 复制数据源即可。
如果您也需要计划任务,我从 CF9 迁移过来但仍然失败,我只是使用了管理 API 和这样的脚本 - 来获取它们。其他设置可以忽略不计,我只是直接配置它们。
<cffile action="read" file="C:\your file here" variable="fileNeoCron">
<cfwddx action="wddx2cfml" input="#fileNeoCron#" output="wddxOut">
<cfset oCron = wddxOut[1]>
<cfoutput>
<cfloop list="#ListSort(StructKeyList(oCron), "textnocase")#" index="sKey">
<cfset oCurCronJob = oCron[sKey]>
#oCurCronJob.task# -
<cftry>
<cfif StructKeyExists(oCurCronJob, "end_time")>
<cfschedule action="update"
task="#oCurCronJob.task#"
operation="httprequest"
url="#oCurCronJob.url#"
startdate="#dateformat(now(), "mm/dd/yyyy")#"
starttime="#oCurCronJob.start_time#"
endTime="#oCurCronJob.end_time#"
interval = "#oCurCronJob.interval#"
requestTimeOut = "600">
<cfelse>
<cfschedule action="update"
task="#oCurCronJob.task#"
operation="httprequest"
url="#oCurCronJob.url#"
startdate="#dateformat(now(), "mm/dd/yyyy")#"
starttime="#oCurCronJob.start_time#"
interval = "#oCurCronJob.interval#"
requestTimeOut = "600">
</cfif>
OK
<cfcatch>
ERROR <cfdump var="#cfcatch#">
</cfcatch>
</cftry>
</cfloop>
</cfoutput>
答案4
我在安装过程中遇到了同样的错误,但是 CF 不会执行实际的迁移过程,直到您加载 CFIDE。完成升级过程后将 CFIDE 联机启动实际升级过程并迁移我的设置。但是,某些设置无法从 CF8 正确迁移到 CF10,需要手动迁移。计划任务就是其中之一。
因此,我首先在共存模式下进行设置,然后将设置迁移到 CF10 服务器。之后,他们现在有一个不错的 GUI 工具来将网站转换为使用 CF10。但是,我发现该工具的缺陷是在 IIS7/7.5 上,它不会删除旧的 CF8 引用,因此您必须手动删除它们。