从 ColdFusion 8 迁移至 ColdFusion 10 - 迁移失败

从 ColdFusion 8 迁移至 ColdFusion 10 - 迁移失败

经过多次尝试从 ColdFusion 8 Standard 服务器迁移到 ColdFusion 10 Standard 服务器后,感觉我“快”完成了。我使用的是 Adob​​e 网站上的 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 管理员中的设置尚未迁移。

我已按照 Adob​​e 网站上的说明进行操作,包括确保网上邻居电脑生成图像处理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 引用,因此您必须手动删除它们。

相关内容