2015-06-12 15 views
9

के साथ विंडोज़ पर माइग्रेट किए जाने के बाद ज़ेंड एप्लिकेशन रीडायरेक्शन काम नहीं कर रहा है मेरा एप्लिकेशन ज़ेंड 1.11 का उपयोग करके विकसित किया गया है जो लिनक्स में ठीक काम कर रहा था। आवश्यकता के अनुसार, मैंने एप्लिकेशन को विंडोज 7 पर ले जाया है जिसमें आईआईएस 7, PHP 5.4.3 9, एमएसएसक्यूएल सर्वर 2012 है।आईआईएस

समस्या यह है कि लॉगिन प्रमाण-पत्र सबमिट करने के बाद, उपयोगकर्ता को होम पेज पर रीडायरेक्ट नहीं किया जाता है लेकिन वह रहता है वही (लॉगिन) पृष्ठ। स्रोत कोड डीबग करने के बाद, मुझे पता चला कि उपयोगकर्ता सफलतापूर्वक डेटाबेस से प्रमाणीकृत है लेकिन उपयोगकर्ता को इंडेक्स नियंत्रक को रीडायरेक्ट करने पर, उपयोगकर्ता को लॉगिन पृष्ठ पर वापस भेजा जाता है। एप्लिकेशन द्वारा कोई त्रुटि प्रदर्शित नहीं की जा रही है IIS लॉग भी कोई त्रुटि नहीं दिखाता है।

मैंने सोचा कि यह यूआरएल रिवाइटिंग से संबंधित मुद्दा हो सकता है। इसलिए, मुझे आईआईएस पर "यूआरएल रीवाइट" मॉड्यूल स्थापित किया गया और वेब.कॉन्फिग फ़ाइल में समेकित यूआरएल रीराइट नियमों को जोड़ने के लिए .htaccess फ़ाइल आयात की गई, लेकिन यह या तो काम नहीं किया।

मेरे एप्लिकेशन सत्र में डेटाबेस में सहेजा जा रहा है। मैं इसे सर्वर (फ़ाइल) पर सहेजने के लिए नहीं बदल सकता क्योंकि यह एक मौजूदा अनुप्रयोग है। लेकिन सत्र को लिखा जा रहा है और डेटाबेस से/सफलतापूर्वक पढ़ा जा रहा है। केवल एक चीज मुझे लगता है कि सत्र पृष्ठ रीडायरेक्ट पर समाप्त हो जाता है। लेकिन यह सुनिश्चित नहीं है कि इसे कैसे ठीक किया जाए।

किसी भी मदद की सराहना की जाएगी। के रूप में IIS में कुकीज़/सत्र के विन्यास के मामले में नीचे enter image description here

दर्शाया मुझे याद आ रही

संपादित

कुकी उत्पन्न की जा रही है? आईआईएस वेब सर्वर का उपयोग करते समय php.ini में सत्र और कुकीज़ के लिए आदर्श कॉन्फ़िगरेशन क्या है?

+0

पर प्रदान की जाती है जीत पर अपाचे के तहत काम कर अपने अनुप्रयोग है? – venca

+0

विंडोज 7 – neeraj

+0

पर आईआईएस 7 के साथ चल रहा है आपके उपयोगकर्ता को उपयोगकर्ता की स्थिति के बारे में कैसे पता चलता है? आम तौर पर वह सत्र या कुकी आधारित होता है और मुझे लगता है कि आपका नया सेटअप सबसे अधिक संभावना नहीं है। जब आप जानते हैं कि यह प्रक्रिया कैसे काम करती है तो आपको उस क्षेत्र में कुछ और डिबगिंग करना चाहिए। –

उत्तर

3

देखने के स्रोत और वेब संदर्भ डिबगिंग के बाद, मुझे पता है कि वास्तविक मुद्दा यह है कि सत्र डेटा PHP इंजन द्वारा deserialized नहीं किया जा रहा था था आया और यही कारण है कि सत्र है ठीक से बनाया नहीं जा रहा था। इसलिए, उपयोगकर्ता को लॉगिन पृष्ठ पर रीडायरेक्ट किया जा रहा था।

तो, वास्तविक समाधान PHP: Custom Session Handler Unserialize Not Working on Windows

+1

यह दिलचस्प है। कौन सोच सकता था कि एक संदिग्ध आईआईएस कॉन्फ़िगरेशन समस्या वास्तव में एक MicrosoftSQL प्रभाव होगी :) –

+0

हाँ मार्कस, इस समस्या को हल करने में तीन सप्ताह लग गए :) – neeraj

3

आपकी कुकी पहचानने पर लॉगिन पृष्ठ पर फिर से रीडायरेक्ट करना सही व्यवहार है। सबसे अधिक संभावना है कि कुकी जारी करने पर कुकी समस्या/कुकी के गलत कॉन्फ़िगरेशन (क्या आपको आईआईएस से फिर से लिखने की आवश्यकता है?)

रूट कारण की समस्या निवारण करने का पहला चरण यह निर्धारित करना है कि लॉगिन और रीडायरेक्ट हेडर हैं या नहीं ब्राउज़र के लिए सभी तरह से सही और सही ढंग से भेजा गया।

आपको अंतिम शीर्षलेख देखने के लिए http ट्रैफ़िक को स्नीफ/कैप्चर करना चाहिए (क्रोम/फ़ायरफ़ॉक्स के लिए "लाइव HTTP शीर्षलेख" एक्सटेंशन का उपयोग करें)। आप यहां संबंधित लॉगिन कार्रवाई/पोस्ट विधि के लिए अनुरोध/प्रतिक्रिया शीर्षलेख का नमूना भी पोस्ट कर सकते हैं।

अनुक्रम में एक प्रतिक्रिया शीर्षलेख होना चाहिए "सेट-कुकी: PHPSESSID = ........."। कुकी पथ/डोमेन के मूल्य का ध्यान रखें। साथ ही "स्थान:/रीडायरेक्ट/पथ" जैसे रीडायरेक्ट हेडर भी।

यदि सब कुछ सही तरीके से कॉन्फ़िगर किया गया है, तो सभी बाद के अनुरोधों में अनुरोध शीर्षलेख "कुकी: PHPSESSID = ....." होना चाहिए। अन्यथा आपको अपने आईआईएस कॉन्फ़िगरेशन की समीक्षा करने की आवश्यकता है (जारी किए गए कुकी मिलान भविष्य के अनुरोधों को सुनिश्चित करने के लिए यूआरएल रीराइट/डोमेन/पथ के लिए रिवर्स)।

कॉन्फ़िगर करने के लिए आईआईएस URL रीराइट/नियम रिवर्स http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-20-configuration-reference#Setting_Response_Headers

+0

मैंने ब्राउज़र में जेनरेट की जा रही कुकीज़ का स्क्रीनशॉट संलग्न किया है। क्या आप आईआईएस का उपयोग करते समय सत्र और कुकीज़ के लिए php.ini की आदर्श कॉन्फ़िगरेशन प्रदान कर सकते हैं या आईआईएस itsef में कोई मॉड्यूल कॉन्फ़िगरेशन आवश्यक है? – neeraj

+0

संलग्न स्क्रीनशॉट से "डोमेन" कॉलम नहीं देखा जा सकता है। क्या आप कॉलम का विस्तार कर सकते हैं या इसे लिख सकते हैं? साथ ही, सर्वर को हिट करने के लिए आप जिस पूर्ण यूआरएल का उपयोग करते हैं? –

+0

यदि आप उपरोक्त सलाह के अनुसार पूर्ण कब्जे वाले http शीर्षलेख पोस्ट कर सकते हैं तो यह बहुत उपयोगी होगा। इस तरह हम यह पता लगा सकते हैं कि क्या वेबसर्वर वास्तव में अनुरोध को सही तरीके से अधिकृत करता है, या यदि समस्या स्वयं कुकी है। एक मौका भी है कि आईआईएस को अपने तंत्र का उपयोग करके अधिकृत करने के लिए कॉन्फ़िगर किया गया है (यदि ऐसा है, तो आपको एप्लिकेशन स्तर प्राधिकरण के लिए आईआईएस को कॉन्फ़िगर करना होगा)। कैप्चर अनुरोध/प्रतिक्रिया शीर्षलेख के बिना आप सटीक समस्या को इंगित नहीं कर सकते हैं - इसलिए आप नहीं जानते कि कौन सा समाधान लागू करना है। –