среда, 26 ноября 2014 г.

Битрикс: проблемы с таблицей b_cache_tag (большой размер, медленные запросы)

Ситуация

В какой-то момент отключили сайт на Битриксе по причине "запросы перегружают базу данных"

Разбирательство

Выяснил, что тормозят запросы вида

SELECT TAG FROM b_cache_tag WHERE SITE_ID = 's1' AND CACHE_SALT = '/ec3'
AND RELATIVE_PATH = '/s1/bitrix/menu/06f'

Выполняются порядка 30 - 60 секунд.
Соответственно хостинг заблокировал базу

Нашел несколько статей по теме

Таблица b_cache_tag весит слишком много
http://dev.1c-bitrix.ru/community/forums/forum23/topic35459/


Непрерывно растет кеш в таблице b_cache_tag
(тут непонятно)
http://dev.1c-bitrix.ru/community/webdev/user/2651/blog/9943/?last_comment_id=0&comment_post_id=9943&PAGEN_1=2


Решение

(может не идеальное, но мне помогло)
делал по ответу в статье http://dev.1c-bitrix.ru/community/forums/forum23/topic35459/

Почистил кеш

Настройки продукта -> Автокеширование -> Очистка файлов кеша -> Все 

Также удалил содержимое папок
/bitrix/cache/ 
/bitrix/managed_cache/ 

и обрезал таблицу
TRUNCATE TABLE b_cache_tag (НО ТАК ДЕЛАТЬ НЕ НУЖНО =) )

понедельник, 10 ноября 2014 г.

Битрикс catalog.section не работает кнопка "Купить" (пустая ссылка BUY_URL)

Ситуация
Битрикс 14.(какая-то)
Перестали работать кнопки "Купить" и "В Корзину" в списке товаров.


Начал разбираться: обнаружил что ссылка BUY_URL - пустая.
Погуглил - нашел ответ в статье
http://www.alexzdesign.ru/blog/webdeveloper/1s-bitriks-ne-vyvodit-ssylki-dobavleniya-tovara-v-korzinu/

Решение:
Обновление модуля “информационные блоки” до версии 14.5.11
(для обновления включил загрузку Бета версий)

четверг, 6 ноября 2014 г.

Ошибка с System.Web.Mvc версия 4.0.0.1 (не компилируется проект)

Ситуация
Не компилируется ASP.NET MVC проект. Компилироваться перестал внезапно, без каких-то действий с моей стороны.

Изучение вопроса
Виновника проблемы нашел относительно быстро. Им оказался Microsoft, а точнее автоматический Windows Security update. Update.
Microsoft подменило версию библиотеки System.Web.Mvc с 4.0.0.0 на 4.0.0.1
(на самом деле точно такое-же произошло и с третьей версией 3.0.0.0 поменялось на 3.0.0.1 но у меня нет проектов на MVC 3, но решение, думаю будет аналогичным).

Ссылки по теме
Windows update caused MVC3 and MVC4 stop working
http://stackoverflow.com/questions/26393157/windows-update-caused-mvc3-and-mvc4-stop-working
System.Web.Mvc broken after security update
https://social.msdn.microsoft.com/Forums/vstudio/en-US/eba2bb36-762c-461b-8104-5ce45a3a3f67/systemwebmvc-broken-after-security-update?forum=netfxsetup


Не помогло
по ссылкам советовали автоматически установить нужную версию из nuget.
Но у меня этот способ не сработал - nuget выдавал ошибку.


Решение, которое помогло мне

1. Заменил ссылку на библиотеку:
во всех проектах удалил ссылку (reference) на старую библиотеку и добавил ссылку на System.Web.Mvc 4.0.0.1
(после этого проекты хотя бы стали компилироваться)

2. Поправил конфиг-файлы:
Тут правил основной web.config и web.config из папки Views
суть исправлений: делал поиск по строке System.Web.Mvc и менял 4.0.0.0 на 4.0.0.1.

После этого заработало локально

3. Сделал так чтобы библиотека копировалась в bin директорию проекта:
В свойствах (properties) добавленного файла (System.Web.Mvc) установил значение
Copy Local = true

после этих изменений и паблиша заработало на удаленном хостинге.

Вопросы/пожелания принимаются в комментариях