Код, с которым я работаю, имеет следующие строки в функции OnSessionStart
в Application.cfc
:
<cfcookie name="CFID" value="#SESSION.CFID#" />
<cfcookie name="CFTOKEN" value="#SESSION.CFTOKEN#" />
На моем LocalHost эти строки вызывают ошибку («CFID элемента не определен в SESSION») при первой попытке загрузить приложение. Но потом, когда я обновляюсь, он загружается нормально.
На развернутых средах (DEV и PROD) работает нормально, без ошибок.
Я просмотрел код и определил, что эти файлы cookie никогда не считываются кодом явно, поэтому я закомментировал их в своем LocalHost. Это устранило ошибку на моем LocalHost, но когда я развернул изменение в DEV, это предотвратило завершение аутентификации LDAP (даже если она успешно завершилась на LocalHost). Поэтому мне пришлось отменить изменение.
Это подводит нас к вопросу: Как я могу устранить ошибку в моем LocalHost, не ставя под угрозу процесс входа в систему в DEV и PROD? (Конечно, я могу жить с ошибкой, если мне нужно, но согласованный код база, работающая одинаково и надежно в обоих местах, гораздо желательнее.)
Мне очень удобно отлаживать код, но я подозреваю, что эта проблема как-то связана с конфигурацией, и я действительно не знаю, с чего начать, кроме простых экспериментов, которые я провел выше.
Моменты, которые могут быть полезны другим, у которых больше знаний и опыта, чем у меня:
- Компьютер LocalHost — это Windows (Windows 7).
- Среды DEV и PROD находятся в Linux.
- LocalHost, DEV и PROD используют один и тот же процесс входа:
<cfldap>
. - В конце 2014 года мы обновили ColdFusion 9 до ColdFusion 11 во всех средах (включая мой LocalHost). Эта проблема не возникала в ColdFusion 9; скорее, это началось, когда я обновился до ColdFusion 11.
- У меня нет доступа к Администратору ColdFusion на машинах Linux (DEV и PROD), хотя, конечно, у меня есть доступ к нему на моем LocalHost.