2010-09-26 13 views
5

के लिए बहुत लंबा है, मैं सत्र स्टोर के लिए memcached का उपयोग करने के लिए कॉन्फ़िगर किया गया रेल 3 चला रहा हूं। मैं निम्नलिखित सेटअप:रैंक सत्र कुंजी memcached

development.rb

config.cache_store = :mem_cache_store

session_store.rb

Foo::Application.config.session_store :mem_cache_store, :key => '_foo_session'

मैं एप्लिकेशन ठीक शुरू कर सकते हैं, जब मैं किसी भी करने के लिए जाना पेज मुझे निम्न त्रुटि मिलती है:

ArgumentError (key too long "rack:session:__really_long_session_key__"):

मुझे एहसास है कि memcached कुंजी पर सीमा 255 है। मैं इसके आसपास कैसे हो सकता हूं, या मैं कुछ गलत कर रहा हूं?

उत्तर

9

आप लगभग निश्चित रूप से इसे देख रहे हैं क्योंकि आप कुकी स्टोर से memcached पर स्विच कर रहे हैं। आपके ब्राउज़र में अभी भी लंबी आईडी के साथ पुरानी सत्र कुकी है। आपको इस कुकी को अपने ब्राउज़र से हटाना होगा और समस्या दूर हो जाएगी।

यदि आप कुकी स्टोर से स्विचिंग साइट पर स्विच करने के लिए स्विच कर रहे हैं, तो यह एक समस्या होगी क्योंकि आपके उपयोगकर्ता के ब्राउज़र पर आपका नियंत्रण नहीं है। इस मामले में समस्याओं से बचने के लिए आपको शायद सत्र कुंजी को बदलने की आवश्यकता होगी।

0

यदि आपकी "कुंजी" 255 से अधिक वर्ण हैं, तो ऐसा लगता है कि आप कुछ गलत कर रहे हैं। आपकी सत्र कुंजी कितनी लंबी है? एमडी 5 या एसएचए 1 के साथ क्या गलत है?

+0

मुझे यह पता लगाना प्रतीत नहीं होता कि यह सत्र कुंजी कहां से आ रही है। मेरे पास ऐप में कहीं भी निर्दिष्ट त्रुटि में दिखाया गया सत्र कुंजी नहीं है। क्या 'key => '_foo_session'' कुंजी नहीं होना चाहिए? –

+0

@ जय बाला - मुझे बिल्कुल यकीन नहीं है कि यह कहां सेट है .. मैंने कभी रैक का उपयोग नहीं किया है –

1

क्या यह संभव है कि आपने कुकी स्टोर से स्विच किया हो या आप उसी कुकी (जैसे लोकलहोस्ट) पर अन्य कुकी सत्र स्टोर ऐप्स चलाते हैं?

इस मामले में कुकी सत्र स्टोर विशाल session_id स्ट्रिंग के लिए ज़िम्मेदार है (क्योंकि यह वास्तव में पूरे सत्र को संग्रहीत करता है)। बस अपनी सत्र कुकी हटाएं और आप ठीक हैं।

संबंधित मुद्दे