0

ログを見ると、次の数百が取得されています

"Error","jrpp-185","08/21/12","10:05:43","PATH","www.domain.com 
Agent:Mozilla/4.0 (compatible; Synapse) 
Error: An exception occurred when invoking a event handler method from Application.cfc. 
The method name is: onRequest.

彼らは主に検索ボットのようです。関数への参照を見ることができるAPplication.cfcの場所は以下のとおりです

<cffunction name="onRequest" returnType="void">
        <cfargument name="targetPage" type="String" required=true/>
        <cfsetting enablecfoutputonly="yes" requesttimeout="20">

        <cfparam name="url.refresh" default="0">
        <cfset request.strMember = Duplicate(session.strMember)/>

        <cfset request.tNow = GetTickCount()>
        <cfif url.refresh EQ 0>
            <cfset request.iCacheHr = 12/>
        <cfelse>
            <cfset request.iCacheHr = 0/>
        </cfif>

        <cflogin>
            <cfif IsDefined("session.strMember.sRoles")>
                <cfloginuser name="#session.strMember.sFirstName##session.strMember.sLastName#"
                    password="12345"
                    roles="#session.strMember.sRoles#"/>
            </cfif>
        </cflogin>

        <cfinclude template="core/incl/SessionLogger.cfm">
        <cfinclude template="core/incl/LinkTranslator.cfm">
        <cfinclude template="core/incl/udf.cfm">

        <cfinclude template="urlcheck.cfm"/>
        <cfinclude template="#Arguments.targetPage#">
    </cffunction>

それから、誰かが何が悪いのか、そしてそれを修正する方法についてアドバイスできますか?私はCFにかなり慣れていないので、残った髪の毛を抜くことができます。

4

3 に答える 3

1

1)2つの異なるコーディングスタイルを使用します

    <cfparam name="url.refresh" default="0">
    <cfset request.strMember = Duplicate(session.strMember)/>

1行目に無効/開いたままのXMLタグ、2行目に有効な(閉じた)XMLタグ。1つ(できれば最後のもの)に固執してみてください。

2)定義されている変数をチェックする古い方法を使用しています

IsDefined("session.strMember.sRoles")

より新しい(そしてより良くそしてより速く)について読む

StructKeyExists(session.strMember, "sRoles")

3)おそらくあなたのコードは呼び出しています

<cfloginuser ... >

すべてのページリクエストで

4)すべてのインクルードのパスが正しく、それら自体にエラーがないことを確認します。

エラーが発生しなくなるまでメソッドを単純化してから、エラーの原因を正確に調査します

于 2012-08-21T09:48:24.453 に答える
0

ボットは存在しないページにアクセスしていますか?

たぶん、最後の行を次のように変更してみてください。

<cfif fileExists(expandPath(Arguments.targetPage))>
    <cfinclude template="#Arguments.targetPage#">
<cfelse>
    <cfabort>
</cfif>
于 2012-08-22T00:50:27.667 に答える
0

たぶん、彼らがボットであるかどうかを検出し、それらを他の何かにサーバーすることができますか?サイトを検索しやすくする方法によって異なります。

http://www.bennadel.com/blog/1083-ColdFusion-Session-Management-And-Spiders-Bots.htm

于 2012-08-23T01:29:41.797 に答える