स्थिर सामग्री का अनुरोध करने पर IIS7 रिक्त हो जाता है


14

मैं एक डेमो मशीन को कॉन्फ़िगर करने की कोशिश कर रहा हूं जो कि विंडोज 7 होम प्रीमियम संस्करण के साथ ईईपीसी है जो सभी ड्राइवरों को ठीक से लोड किया गया है (मुझे यह नहीं पूछें कि यह होम संस्करण क्यों है) IIS7 स्थापित है।

मैंने एप्लिकेशन को मशीन पर डेमो-एड होने के लिए तैनात किया है जो कि ASP.NET MVC साइट है, कंसोल के माध्यम से वेबसाइट को जोड़ा गया, एक ऐप पूल जोड़ा। ऐप पूल NetworkService के रूप में चलता है और अतिथि IUSR के रूप में प्रमाणित होता है।

मैंने NetworkService के संशोधित अधिकार जोड़े हैं और IUSR से वेबसाइट के फ़ोल्डर और उसकी सामग्री के अधिकारों को पढ़ा और निष्पादित किया है।

जब मैं वेब की जड़ से टकराता हूं , तो http://example.com/ कहें कि मुझे वेबसाइट से दिया गया एक उचित HTML प्राप्त हुआ है (जिसका अर्थ है कि एप्लिकेशन काम करता है) लेकिन समस्या यह है कि सभी स्थिर सामग्री रिक्त हैं।

मुझे यकीन नहीं है कि ऐसा क्यों हो रहा है। जब मैं स्थैतिक सामग्री का उपयोग करता हूं, तो कोई 404 या 500 त्रुटि पृष्ठ नहीं, केवल सादा खाली प्रतिक्रिया। सभी ASP.NET-जेनरेट की गई सामग्री ठीक काम करती है (यद्यपि थोड़ी सी भी विचित्रता है क्योंकि सभी CSS और चित्र लोड नहीं होंगे)

कृपया मदद करें, IIS7 प्रबंधन कंसोल मेरे लिए बहुत भ्रमित है और मुझे कल तक मशीन की आवश्यकता है।

जवाबों:


25

क्या आपने स्थैतिक सामग्री सुविधा चालू की?

http://weblogs.asp.net/anasghanem/archive/2008/05/23/don-t-forget-to-check-quot-static-content-service-quot-in-iis7-installation.aspx


यहाँ विकल्प खोजने के लिए कहाँ है: सर्वर प्रबंधक> भूमिकाएँ> रोल सेवाएँ जोड़ें। आपको
जॉन एम

2

मेरे मामले में, सर्वर भूमिका पहले से ही स्थापित थी, और अभी तक स्थिर हैंडलर ने केवल एक हैंडलर मैपिंग के साथ एक तुच्छ परीक्षण साइट के लिए रिक्त पृष्ठ भी दिए हैं।

यह अनुरोध अनुरोध प्रतिबंध को सक्षम करने के लिए था "केवल अनुरोध किए जाने पर हैंडलर को चालान करें"। इससे कोई फर्क नहीं पड़ता कि मैंने इसे "फ़ाइल" या "फ़ाइल या निर्देशिका" पर सेट किया है; जब तक चेकबॉक्स सक्षम है, तब तक यह काम करता है:

                  यहाँ छवि विवरण दर्ज करें

यदि यह अभी भी मदद नहीं करता है, तो रिक्त पृष्ठों की ओर ले जाने वाली एक और चीज़ "अनुरोध पथ" अनुभाग में एक पथ निर्दिष्ट करने की कोशिश कर रही है, जैसे publicया शायद public/*। उत्तरार्द्ध केवल गलत है, जबकि पूर्व को स्वीकार किया जाना चाहिए, लेकिन इसके बजाय रिक्त पृष्ठों में परिणाम होता है। समाधान "अनुरोध पथ" सेटिंग के लिए <location path='public'>निर्दिष्ट करते हुए, हैंडलर मैपिंग को एक अनुभाग में लपेटना है *। या, IIS प्रबंधक में, साइट का विस्तार करें और पहले अपने फ़ोल्डर का चयन करें, फिर हैंडलर मैपिंग को संपादित करें।


1

जैसा @MattB ने सुझाव दिया, मैंने "स्टेटिक कंटेंट" फीचर को सक्षम नहीं किया था, लेकिन यह समस्या का केवल एक हिस्सा है।

मैंने "स्टैटिक कंटेंट" फीचर जोड़ा है और फिर भी समस्या अभी भी बनी हुई है, इसलिए मैं हैंडलर मैपिंग सूची से डिफ़ॉल्ट MvcHttpHandler को हटाने के बारे में जाता हूं और किसी तरह समस्या खुद हल करता है ... तो समस्या यह थी कि MvcHutpHandler अनुरोधों को इंटरसेप्ट कर रहा था StaticFileHandler,

FYI करें, "स्थैतिक सामग्री" स्थापित करने के बाद, यह भी सुनिश्चित करें कि ...

  1. इंटरनेट सूचना सेवा प्रबंधक में, अपनी वेबसाइट पर क्लिक करें।
  2. "हैंडलर मैपिंग" सुविधा पर डबल-क्लिक करें।
  3. दाईं ओर (एक्शन पैनल) पर आपको "देखें ऑर्डर की गई सूची ..." शीर्षक से एक लिंक दिखाई देगा, इसे क्लिक करें।
  4. फिर आपको वह आदेश मिलेगा जो मॉड्यूल प्रत्येक अनुरोधों से मेल खाता है, यह सुनिश्चित करें कि ऑर्डर समझ में आता है।

मेरे मामले में MvcHttpHandler बाकी सब से ऊपर था, मैंने इसे समस्या को सूची के निचले भाग में ले जाकर हल किया, जो कि सबसे समझदार जगह है क्योंकि इसमें होना चाहिए क्योंकि AXD फ़ाइल हैंडलर, ट्रेस हैंडलर, ऑप्ट हैंडलर और स्थिर सामग्री को एक शॉट मिलता है। अनुरोध को संभालने से पहले।

आशा है कि यह एक ही समस्या के लिए किसी googling मदद करता है :-)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.