ColdFusion-获取大量错误报告-用户未指出任何问题

ColdFusion-获取大量错误报告-用户未指出任何问题,coldfusion,cluster-computing,Coldfusion,Cluster Computing,好的,这是背景。我们有一个用于运行coldfusion服务器的集群环境设置,它基本上分为两个不同的实例,通用地址将请求重定向到这两个实例。我的应用程序设置为每当用户发现错误时向我发送电子邮件 在过去一周左右的时间里,我收到过一些案例,其中一个用户在5分钟内浏览相关应用程序时,我收到了500多封错误电子邮件。在正常情况下,我可能会整天收到一打。在大多数情况下,我能够很快与用户交谈,他们报告没有收到任何错误页面,并且能够很好地完成交易 所涉及的应用程序非常简单,用户登录,他们浏览大约6个不同的页面,

好的,这是背景。我们有一个用于运行coldfusion服务器的集群环境设置,它基本上分为两个不同的实例,通用地址将请求重定向到这两个实例。我的应用程序设置为每当用户发现错误时向我发送电子邮件

在过去一周左右的时间里,我收到过一些案例,其中一个用户在5分钟内浏览相关应用程序时,我收到了500多封错误电子邮件。在正常情况下,我可能会整天收到一打。在大多数情况下,我能够很快与用户交谈,他们报告没有收到任何错误页面,并且能够很好地完成交易

所涉及的应用程序非常简单,用户登录,他们浏览大约6个不同的页面,每个页面向下一个提交表单发布的数据,这些表单变量需要继续。对于这些海量电子邮件的收集,我似乎都会遇到一个错误,那就是在每个页面上找不到第一个表单变量。“错误消息:元素会话ID在表单中未定义。”-似乎每次都是这样

当我查看错误电子邮件时,我可以看到引用页面和报告页面是什么,并且可以跟踪用户从一步一步地浏览应用程序,直到完成——每次为每个页面生成几十封错误电子邮件

我的一个假设是,集群服务器向应用程序的两个实例发送请求,在每个物理服务器上,用户会话所在的实例都可以正常运行,但对“未使用”服务器的请求得到的请求没有表单数据,并发出这些错误电子邮件。这可能吗?谢谢-



其他信息-我刚刚浏览了我的报告,所有这些事件之间的另一个主要相似之处是没有填充CGI.referer变量(我在错误电子邮件中发送的)。在这些群发邮件中,没有一封通过cgi.referer,但在我所有的正常错误报告中,它都被添加了。我觉得这很奇怪。

这可能是因为CGI变量并不总是被定义的。这实际上取决于web服务器来传递它们。 在依赖它们之前,你可能想测试它们的存在。。。像这样的

<cfif CGI.varname IS NOT "">
   CGI variable exists
<cfelse>
   CGI variable does not exist
</cfif>

CGI变量存在
CGI变量不存在
或者甚至是一个CFPARAM来确保你有你的CGI变量


希望这能有所帮助。

同意,如果cgi变量可能无法通过集群服务器传递,请使用cfparam作为默认值


此外,在错误报告中添加一些检查也可能是值得的,因此,与1000封报告1-2个错误的相同变化的电子邮件不同,您只需要1封摘要电子邮件……比删除所有这些大量额外电子邮件的麻烦更少。

如果您在2+Web服务器前安装了负载平衡器,则可能会发生这种情况。但大多数负载平衡器都是通过粘性会话设置的,当用户进入并被定向到一台服务器时,他们将保持与该服务器的“连接”。您正在通过URL传递SessionID吗?如果没有,请尝试在浏览器中禁用Cookie,并查看是否可以重新创建它。这也许可以。这很有趣-我会尝试设置它。TYDang,我们的应用程序位于黑板后面,这需要一个cookie来验证。也许我可以设置一个不经过黑板的测试应用程序来尝试。关闭浏览器中的cookies。如果CF通过Cookie存储会话ID,这将导致您的会话在跨页面请求中无效。作为旁注,如果你谈论的是Blackboard教育模块,我有几个词来描述它。哦,只是澄清一下,我指的会话Id不是Coldfusion会话Id,它是一个单独的变量。和蔼可亲——当然——但这是制度实践的遗留问题。