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)您使用两种不同的编码风格

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

第一行中的无效/左打开 XML 标记和第二行中的有效(关闭)XML 标记。尝试坚持一个(最好是最后一个)。

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 回答