【发布时间】:2011-02-03 17:44:12
【问题描述】:
网络上散布着很多类似问题的例子,但他们的解决方案似乎都没有解决这个特殊的变化。任何建议,将不胜感激。
通常会出现此问题,因为恶意链接导致对诸如 favicon 或 css 文件等资源的请求多次访问调度程序,从而导致多个调度进程,从而导致数据库中出现多行。
我已经检查了这个非常简单的示例页面上的所有链接是否确实解析到它们指向的资源。
会话处理程序设置如下:
Zend_Db_Table_Abstract::setDefaultAdapter($db);
Zend_Session::setSaveHandler(new
Zend_Session_SaveHandler_DbTable($config->session->toArray()));
数据库日志设置如下:
$writer = new Zend_Log_Writer_Db($db, $config->log->tableName,
$config->log->columnMap->toArray());
$logger = new Zend_Log($writer);
这两个对象都已正确设置,并且可以从数据库读取和写入数据。只有一切都发生了两次。如果我将测试日志消息放在应用程序的任何位置,它将被写入数据库两次。如果我在每次调用索引操作时增加三个变量——一个存储在会话中,一个通过 Zend_Registry 对象传递,另一个在 indexAction 本地传递——只有会话变量增加 2。Apache 访问日志显示正确的数量的请求从页面加载中触发,并且所有请求都具有 200 或 304(未更改)的良好响应代码。
我已尝试禁用所有头部链接。 我已经尝试完全禁用布局。 我已将所有内容本地化到调度程序并在调度运行之前退出。
在所有情况下都会发生额外的写入/增量。 有什么想法吗? 提前感谢您的帮助。
【问题讨论】:
标签: model-view-controller zend-framework zend-db zend-session zend-log