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 に答える