Запуск с ответ данный @chaos, но с несколькими модификациями:
необходимо всегда использовать ORDER BY
, если Вы используете LIMIT
. Нет никакого неявного порядка, гарантируемого для таблицы RDBMS. Вы май обычно получает строки в порядке первичного ключа, но Вы не можете полагаться на это, и при этом это не портативно.
, Если Вы заказываете в порядке по убыванию, Вы не должны знать количество строк в таблице заранее.
необходимо дать имя корреляции (иначе псевдоним таблицы) к полученной таблице.
Вот моя версия запроса:
SELECT `id`
FROM (
SELECT `id`, `val`
FROM `big_table`
ORDER BY `id` DESC
LIMIT $n
) AS t
WHERE t.`val` = $certain_number;
При отладке IIS не будет обслуживать другие запросы, пока вы не завершите пошаговое выполнение кода. Это включает в себя запрос «ping», который IIS отправляет самому себе. Поскольку IIS не получает ответа от самого себя, он решает выключиться, что немедленно прекращает вашу отладку.
Решение состоит в том, чтобы увеличить Максимальное время отклика Ping в настройках пула приложений со значения по умолчанию, равного 90 секундам. Установите достаточно высокое значение, чтобы у вас было достаточно времени для отладки кода (например, 300 секунд).
У Microsoft есть длинное описание здесь , или вы можете просто взглянуть на красивую картинку.
-
Изменить: другие предлагали установить для параметра «Ping Enabled» значение false . Есть несколько причин, по которым я предпочитаю оставить его на месте. просто с большим интервалом, но наиболее важным является то, что у вас (скорее всего) будет включен пинг обработки рабочих в производственной среде, и вам следует стремиться к разработке и отладке в конфигурации, максимально приближенной к производственной. Если у вас НЕ включен ping на производстве, обязательно отключите его и локально.
Ваш пул приложений -> Расширенные настройки -> Ping Enabled to False
В IIS есть функция проверки работоспособности, которая периодически проверяет, не зависает ли рабочий процесс IIS или нет его иным образом использовать. Если рабочий процесс остановлен в отладчике, он выглядит нездоровым с точки зрения IIS, и IIS убивает его и запускает новый процесс.
Чтобы изменить это поведение (на вашей рабочей станции разработчика - не хочу отключать это в производственной среде!), Перейдите в инструмент управления IIS, выберите узел Пулы приложений на левой панели и щелкните правой кнопкой мыши пул приложений. , в котором находится ваше приложение, и выберите «Дополнительные настройки». Оттуда в разделе «модель процесса» установите для «Ping Enabled» значение False. Вы также можете установить очень большое значение времени ожидания простоя.
См. эту статью IIS.NET для более подробного обсуждения этой проблемы и снимка экрана.
Если у вас есть microsoft ' s scom запущен и настроен там, где вы работаете (при условии, что это не развлекательный проект), и вы можете создать для него пакет управления или узнать кого-то, кто работает, что может помочь вам определить причину проблемы. Я понимаю, что это далеко, но если это описывает ваш сценарий, я бы поступил так, если не было найдено другого решения.