Я отправил способ, которым я решил эту проблему на форуме MSDN:
Хорошо я все еще не знаю, почему я получал исключение, но я, кажется, нашел обходное решение. Я сделал эксперимент, где я взял воображаемое оскорбление web.config и скопировал его в новый проект, где я добавил новое управление веб-формой и диаграммой и управление диаграммой, представленное прекрасным с опцией "UseHttpHandler". Это привело меня полагать, что это не был на самом деле web.config, который был проблемой в моем случае, таким образом, я вернулся к исходному проекту и добавил диаграмму к другой веб-форме как эксперимент, и это работало! Еще более удивительный был то, что после этого я перешел к незаконной странице, и она работала также! Тогда я взял новую диаграмму от другой страницы и проверил исходную незаконную страницу, и это было повреждено снова. Тогда я узнал, поместил ли я управление диаграммой на какой-либо странице перед незаконной страницей, она работала бы, иначе она выдала исключение. Эти средства управления так прохладны, хотя это у меня не было проблемы, находя, что другая страница ставит один в пути незаконной страницы:)
Это решило проблему, но если бы у кого-либо есть какая-либо теория, почему мне была бы интересно..., возможно, ошибка?
недостаточно памяти (выделенная память для apc, то есть)
Недостаточно места на диске или доступ к каталогу хранения запрещен?
В дополнение к тому, что сказал Грег, я бы добавил, что это могла быть ошибка конфигурации.
Если вы все равно собираетесь повторно использовать одно и то же регулярное выражение, выведите его из цикла и явно сбросьте его:
var pattern = /(b)/g;
for (var i = 0; i < 5; ++i) {
pattern.lastIndex = 0;
console.log(i + ' ' + pattern.exec("abc"));
}
-121-2314779- Спасибо:)
Я нашел интересный побочный эффект, можно сделать статическую переменную (в смысле C, глобальную, но только видимую из функции) без замыкания!
function test () {
var static = /a/g;
if ('count' in static) {
static.count++;
} else {
static.count = 1;
}
console.log(static.count);
}
for (var i = 0; i < 5; ++i) { test(); }
1
2
3
4
5
(Я делаю новый ответ, потому что мы не можем поместить код в комментарий)
-121--2314780-Для php cli необходимо включить другой параметр: apc.enable_cli=On
In моей ситуации это было работать при запуске из веб-браузера, но не при выполнении того же материала с php cli.
http://php.net/manual/en/apc.configuration.php
Настройки APC.TTL и APC.USER_TTL на php.ini:
Оставление этого на нуле означает, что кеш APC может потенциально Заполните устойчивые записи, в то время как новые записи не будут кэшированы.
эта бессмысленная (и закрытая по какой-то причине) ошибка была моей проблемой:
http://pecl.php.net/bugs /bug.php?id=16814
должен откатиться до версии 3.1.2 apc, чтобы apc заработал. не помогло возиться с настройками apc в php.ini (я использую mac os 10.5, использую apache 2, php 5.3).
для меня этот тестовый сценарий показал 3 «истины» для 3.1.2 и true / false / true для 3.1.3p1
var_dump (apc_store ('test', 'one')); var_dump (apc_store ('test', 'two')); var_dump (apc_store ('diff', 'thr'));