Код DotNetNuke в пользовательских модулях работает только при входе в систему или отладке. - PullRequest
0 голосов
/ 09 декабря 2010

У меня есть сайт, который я обновляю.Задача состоит в обновлении с 4.08 до 5.06 и установке catalook вместе с некоторыми пользовательскими модулями для отображения данных catalook.Код модуля работает нормально, и при первой загрузке страницы все в порядке.Нажатие на любую ссылку или кнопку действия, по-видимому, просто обновляет экран без выполнения какого-либо кода модуля.

однако, если я вошел в систему как администратор или отладил код модуля, все работает как ожидалось

мысли кто-нибудь?

1 Ответ

1 голос
/ 10 декабря 2010

Хорошо, я понял проблему.Манифест в модуле имел кэш по умолчанию 60, DNN кэширует результаты запроса.Возможно, было бы лучше, если бы dnn также кэшировал параметры строки запроса и, если они изменились, выгрузил кэш и восстановил его (VaryByParam).Решение простое.

  1. Исправьте манифест, так что если вы когда-либо установите его на другой экземпляр, он будет правильным.

  2. Исправьте существующие настройки.Вы можете посетить каждый параметр модуля (хост-модули) и изменить значения кэша, чтобы при добавлении его на другую страницу он был корректным.

  3. Исправьте модули, установленные настраницы.Это может быть довольно утомительно, если ваш модуль часто используется (мой был).Быстрый способ - выполнить оператор обновления для TabModules, чтобы установить параметры кэша для каждого модуля, загруженного на страницах.

...