2

我不知所措。

我正在通过 Ajax 发布到 Coldfusion8 cfc,虽然它在我的本地计算机上运行良好,但在实时服务器上,我无法调用此 CFC 中的任何函数,或者它是扩展的 CFC。

我想做这个:

<cfset LOCAL.response = THIS.commit() />

如果我转储:

<cfdump output="e:\path\to\dump.txt" label="catch" var="committing"> 
<cfdump output="e:\path\to\dump.txt" label="catch" var="#THIS#"> 
<cfset dickhead = THIS.Commit() >
<cfdump output="e:\path\to\dump.txt" label="catch" var="out"> 

我越来越:

committing 
****************************************************************

catch - component services.form_service_user 
    extends controllers.form_switch

Methods: 
    DEFAULTS
        [function]
            Arguments: none 
            ReturnType: struct 
            Roles:  
            Access: public 
            Output: false 
            DisplayName:  
            Description:  
PROCESS
        [function]
            Arguments: none 
            ReturnType: struct 
            Roles:  
            Access: remote 
            Output: true 
            DisplayName:  
            Description:   
COMMIT
        [function]
            Arguments: none 
            ReturnType: struct 
            Roles:  
            Access: public 
            Output: false 
    Description:  
             ...

所以方法/功能就在那里。但我不会出去。我也清除了提交函数,除了一个单独的返回值和一个转储。我既没有得到转储,也没有得到返回值。

问题
如果我在 PROCESS 中,为什么我不能在实时服务器上调用 COMMIT,而它在生产环境中运行良好?这是某种缓存还是其他设置?另外,我无权访问 CFadmin,所以我或多或少是在瞎猜?

感谢您提供任何信息!

编辑
提交调用在 try/catch 中:

<cftry>     
    <cfdump output="e:\dump.txt" label="catch" var="a"> 
    <cfdump output="e:\dump.txt" label="catch" var="#THIS#"> 
    <cfset LOCAL.Response = THIS.Commit() >
    <cfdump output="e:\dump.txt" label="catch" var="b"> 

    <!--- COMMIT ERRORS --->
    <cfcatch>
            <cfdump output="e:\dump.txt" label="catch" var="ERROR">
            <cfset LOCAL.Response.Success = false />
            <cfset LOCAL.Response.Errors = [["server_error","commit error"]] />     
    </cfcatch>
</cftry>   

我收到 AJAX 返回的“提交错误”

4

1 回答 1

3

检查您的方法的访问属性。

如果您从同一组件中的另一个方法调用组件中的方法(或从父组件继承),则访问必须是私有的、公共的或包的。它不可能是远程的。

确保您的 ColdFusion 映射对于实时服务器是正确的。

确保您已将所有应用程序文件部署到正确位置的实时服务器。

于 2012-07-06T18:45:21.127 回答