IIS7.5 पर स्थिर फ़ाइल हैंडलर द्वारा स्क्रिप्ट नहीं परोसी गई


130

मैंने अपने विंडोज 7 होम प्रीमियम नोटबुक पर IIS के लिए अपना पहला वेब एप्लिकेशन तैनात करने का प्रयास किया है। एप्लिकेशन बनाने के बाद, मुझे क्लासिक ऐप पूल में बदलना पड़ा, फिर उस पूल को 4.0 के लिए सेट किया। अब मुझे निम्नलिखित त्रुटि मिलती है:

HTTP एरर 404.17 - नहीं मिला अनुरोधित सामग्री स्क्रिप्ट प्रतीत होती है और इसे स्टैटिक फ़ाइल हैंडलर द्वारा प्रस्तुत नहीं किया जाएगा।

अनुरोधित URL http: // localhost: 80 / pvmms / default.aspx है

मुझे डर है कि व्यापक Googling ने मेरे लिए काम करने के लिए कुछ भी स्पष्ट या निश्चित नहीं किया है और हमेशा की तरह मैंने विशेषज्ञों की ओर रुख किया है।

संपादित करें: मुझे संदेह है कि यह इसलिए है क्योंकि .aspx फ़ाइलों के लिए कोई फ्रेमवर्क 4.0 हैंडलर मैपिंग नहीं है। हालाँकि, aspnet_regiis यहां तक ​​कि मेरे व्यवस्थापक को उंगली देता है और कहता है कि मुझे इसे चलाने के लिए व्यवस्थापक अधिकारों की आवश्यकता है।

EDIT # 2: मैंने सभी फ्रेमवर्क (2 और 4, 32 और 64) को पंजीकृत किया और अब सभी काम करता है। मैंने इसे .aspxaspnet_isapi और वॉइला के लिए स्क्रिप्ट मानचित्र को मैन्युअल रूप से जोड़कर पाया । मुझे समझ में नहीं आता है कि फ्रेमवर्क की स्थापना ऐसा क्यों नहीं करती है, जब तक कि मेरी स्मृति मुझे विफल नहीं करती है और मैंने वीएस स्थापित करने के बाद केवल आईआईएस को सक्षम किया है।


वैकल्पिक रूप से इसे web.config में करें जैसा कि यहां बताया गया है stackoverflow.com/questions/2061678/…
bizl

जवाबों:


120

शायद अब बहुत देर हो गई है, लेकिन अधिक बार आपको चलाने की आवश्यकता नहीं है

aspnet_regiis.exe -i  

asp.net स्थापित करने के बाद। शायद मैं इसे अब वैसे भी करूंगा।


17
.NET फ्रेमवर्क के साथ जहाज करने वाले दो IIS पंजीकरण उपकरण हैं; मानक प्रणालियों के लिए एक और 64-बिट प्रणाली के लिए एक। विंडोज फ़ोल्डर के अंदर Microsoft.NET निर्देशिका के फ्रेमवर्क 64 निर्देशिका में स्थित 64-बिट सिस्टम के लिए उपकरण; उदाहरण के लिए C: \ WINDOWS \ Microsoft.NET \ Framework64 \ v2.0.50727 में IIS पंजीकरण उपकरण होगा।
मैथ्यू लॉक

3
यदि आपको त्रुटि मिलती है the command is not recognized as an internal or external command। इसे डेवलपर कमांड प्रॉम्प्ट में चलाएं।
रॉकएक्सट्रोक

1
मुझे फ्रेमवर्क 64 फ़ोल्डर में 2.0 फ्रेमवर्क के लिए ऐसा करना पड़ा। जैसे
@ मट्टू

ध्यान दें, अगर आपको 2.0 और 4.0 चलाना है, तो पहले 2.0 चलाएं।
साउथशोरक

C: \ Windows \ Microsoft.NET \ फ्रेमवर्क 64 \ v2.0.50727 (x2 पर v2.0 के लिए) - फ्रेमवर्क 64 को x86 के लिए फ्रेमवर्क में बदलें, v2 को बदलें। v4। * V4 के लिए (सटीक नाम के लिए मूल फ़ोल्डर में ब्राउज़ करें)
जॉनएल्वेन

63

उपरोक्त के अलावा, यदि आपको WCF समर्थन की आवश्यकता है, तो आपको इसे चलाने की आवश्यकता हो सकती है:

c:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe -i

अपने वर्तमान फ्रेमवर्क संस्करण को जो भी हो, v3.0 को बदलें।


1
दूसरों पर ध्यान दें, मुझे लगता है कि वे वेब पर हैं जो 4.0 ऐप पूल का उपयोग करते हैं, आपको फिर से aspnet_regiis चलाने की आवश्यकता होगी
टिम Gabrhel

1
.Net के लिए मूल निर्देशिका में 4। उदाहरण: C: \ Windows \ Microsoft.NET \ Framework \
v4.0.30319

57

मेरे द्वारा लिखी गई WCF सेवा तक पहुँचने की कोशिश करने पर मुझे IIS 8.5 से यह त्रुटि आई। सर्वर चालू करता है जिसमें WCF HTTP सक्रियण सुविधाएँ चालू नहीं थीं। बक्से की जांच की और विज़ार्ड के माध्यम से क्लिक किया, iisreset, काम करना शुरू कर दिया।

विंडोज सुविधाएँ पैनल


1
इसने मेरे लिए IIS 8.5 और विंडोज 8.1 के साथ काम किया। मुझे एक ASHX को प्रश्न में वर्णित त्रुटि (HTTP 404.17) प्राप्त करने में सक्षम करने की आवश्यकता थी
सर्जियो ए।

धन्यवाद! इसने मेरे लिए काम किया। हालाँकि, मेरे मामले में मुझे इसे .NET 2.0 के लिए चालू करना था क्योंकि मैं पुरानी वेब सेवा का उपयोग कर रहा हूँ
स्टीफन वासिलजेविक

यह एक पुरानी पोस्ट है लेकिन आपके समाधान ने मेरी बेकन को बचा लिया। मुझे यह एक लाख साल में नहीं मिला होगा ... कहीं और। धन्यवाद।
जो शमुकर

48

यदि आप iis 7.5 का उपयोग कर रहे हैं।

बस IIS प्रबंधक पर जाएं, अपनी वेबसाइट गुण खोलें।

आपको वहां 'हैंडलर मैपिंग' सेक्शन दिखाई देगा, बस उस सेक्शन में जाएं और 'staticFile' सर्च करें।

सबसे शायद यह सूची में एक अंतिम फ़ाइल है।

फिर राइट क्लिक करें और 'रिवर्ट टू पैरेंट' चुनें।

मैंने इतने घंटे बर्बाद किए हैं जबकि मैंने पहली बार सामना किया है, वैसे भी यह आपकी समस्या का समाधान करेगा।


2
जैसा कि आदि ने उत्तर दिया: यह कमांडो बस इतना ही करता है: c: \ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows संचार फाउंडेशन \ ServiceModelReg.exe -i
JDC

शुक्रिया @Kumar टिप के लिए! IIS> साइटें> acme.com> हैंडलर मैपिंग> जनक पर वापस लौटें। मेरे मामले में, मैंने इसे पूरे डोमेन के लिए किया, न कि केवल "स्टेटिकफाइल" के लिए। यह मेरे लिए काम करता था और एक निष्पादन योग्य (aspnet_regiis.exe) को चलाने की तुलना में सरल / बेहतर था। यह सुझाव आगे क्यों नहीं बुदबुदा रहा है? =)
जिमी

शानदार टिप ... लेकिन उस शोस्टॉपर के पास कहां से आया? मुझे याद नहीं है कि IIS के पिछले संस्करणों में कभी मिला हो ...!
माइक गल्डहिल

25

मेरे पास ASP .NET 4.5 के साथ Windows Server 2012 में यह समस्या थी, आप aspnet_regiis.exe का उपयोग नहीं कर सकते हैं, और बस ASP .NET 4.5 को ऐड रोल्स और फीचर्स विज़ार्ड के माध्यम से स्थापित करना होगा:

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

आप सर्वर प्रबंधक के दाएं कोने में मेनू "प्रबंधित करें" में मेनू आइटम "रोल्स और फीचर्स जोड़ें" पा सकते हैं


1
मेनू आइटम "रोल्स और फीचर्स जोड़ें" आप सर्वर मैनेजर के दाहिने कोने में मेनू "मैनेज" में पा सकते हैं
अलेक्जेंडर ट्रोफिमोव

16

वैकल्पिक शब्द

मुझे लगता है कि इस विकल्प की जाँच करनी चाहिए


1
यह सिर्फ निर्धारित करता है कि स्थिर सामग्री परोसी जा सकती है या नहीं। मेरी समस्या यह है कि स्क्रिप्ट अनुरोध स्थिर सामग्री के लिए मैप किए जा रहे हैं। यदि मैं इसे बंद कर देता हूं, तो IIS पृष्ठ को सर्वर करने का प्रयास नहीं करता है, बस मुझे एक खाली दे रहा है।
प्रोफेक सिप

16

मैंने इस समस्या को सक्षम करके हल किया WCF Services

Programs and Features > NET Framework 4.5 Services > WCF Services> HTTP Activation node

लेकिन आप लोगों को यह स्वीकार करना होगा कि यह एनआईटीआरईआई आईआईएस सेटअप कॉन्फ़िगर / अनुमान / परीक्षण करें और देखें / इस कोशिश करें / कोशिश करें कि हमारे चारों ओर 4 या 5 दिन खर्च हो जाएं, जो कि दृष्टिकोण के आसपास एक समाधान खोजने की कोशिश कर रहा है, एक पूर्ण और UTOK JOKE है।

SURELY, 'IIS' को डेट पर जाने वाले सबसे बड़े विश्वास का प्रतीक है


1
आपको केवल IIS के लिए स्थिर सामग्री सुविधा सक्षम करनी है। इसका WCF से कोई लेना-देना नहीं है।
प्रोफ ५

1
@ProfK इस बात पर निर्भर करता है कि आपको वह त्रुटि क्यों हो रही है, अलग-अलग कारणों से एक ही त्रुटि होती है - यदि आपको WCF का उपयोग करने के लिए कॉन्फ़िगर की गई SVC फ़ाइल के साथ त्रुटि हो रही है, तो उपरोक्त इसे ठीक करता है।
JohnLBevan

LOL पूरी तरह से सहमत है, कई साइटों को पोर्ट कर रहा है और सिर्फ 5 अलग-अलग प्रकार की त्रुटि देखी गई है जिसमें कोई वास्तविक त्रुटि संदेश नहीं है या बहुत गूढ़ है। उदाहरण "पृष्ठ प्रदर्शित नहीं किया जा सकता क्योंकि आंतरिक सर्वर त्रुटि आई है" इसका मतलब है कि आपने एक स्थिर सामग्री माइम प्रकार जोड़ा है जो पहले से मौजूद है।
माइक नेल्सन

15

मुझे पता है कि यह एक पुराना सवाल है, लेकिन मैंने इसे अपने पुनर्निर्माण विंडोज 8 मशीन पर केवल 3.5 आवेदन के साथ लिया है और मैं अभी भी aspnet_regiis -iruइसे प्राप्त कर रहा था और यह एएसपी .नेट 3.5 हो गया था, अनुप्रयोग विकास सुविधाओं के भीतर टिक नहीं किया गया था (छवि पोस्ट करने के लिए पर्याप्त प्रतिष्ठा नहीं)।


2
छवि के लिए @bicbmx, आप कहीं अपलोड करने के बाद एक लिंक साझा कर सकते हैं, जैसे कि imgur.com
superjos

12

एक मौका है कि आपके द्वारा डिफ़ॉल्ट रूप से आवेदन करने के लिए बनाया गया एप्लिकेशन पूल 2 संस्करण है। इसलिए यदि आप सूची में .svc एक्सटेंशन के लिए एक हैंडलर देखते हैं तो यह काम नहीं करता है और इसे स्टैटिक फ़ाइल के रूप में मानते हैं। आपको केवल आवेदन पूल के गुणों को खोलना है और इसे संस्करण 4 में बदलना है।


8

फिर से asp.net रजिस्टर करें .... समस्या हल हो जाएगी।
यहाँ छवि विवरण दर्ज करें

Visual Studio कमांड प्रॉम्प्ट पर जाएं,
और asp.net को windows \ microsoft.net \ Framework [.Net संस्करण संख्या] \ aspnet_regiis.exe -i के रूप में पंजीकृत करें


2
aspnet_regiis.exe -i जवाब देता है "यह विकल्प ऑपरेटिंग सिस्टम के इस संस्करण पर समर्थित नहीं है।" IIS को गधे में ऐसा दर्द क्यों है?
पॉल मैकार्थी

5

मैं एक ही मुद्दे पर एक था विंडोज 8 मशीन मैं स्थापित कर रहा हूँ। मैंने vs2010 को vs2010 से पहले स्थापित किया था, जो .NET फ्रेमवर्क 4.5 स्थापित करता है। मेरे पास 4.0 में मेरा ऐप पूल चल रहा है। मुझे यकीन है कि मैं aspnet_regiis -i का उपयोग करते हुए 4.0 के लिए पंजीकृत था। यह अभी भी चाल नहीं चली। फिर मैंने विंडोज के फीचर्स खोले और देखा कि 4.5 में ".NET फ्रेमवर्क 4.5 एडवांस्ड सर्विसेज" नामक एक सेट जोड़ा गया है। मैंने WCF सेवा नोड और उसके बच्चों को सक्षम किया और फिर मेरे svc समापन बिंदु को सही ढंग से संचालित किया। आशा है कि यह उन लोगों की मदद करता है जो विंडोज 8 में कदम रख रहे हैं।


सर्वर 2012, IIS8 यहां भी, सूचक के लिए धन्यवाद जो आपने मुझे सही दिशा में जा रहा है। रुचि रखने वालों के लिए, मुझे एप्लिकेशन सर्वर भूमिका के साथ-साथ वेब सर्वर भूमिका को भी चालू करना आवश्यक है। मुझे वह जानकारी मिली जिसकी मुझे यहाँ आवश्यकता थी: msdn.microsoft.com/en-us/library/hh167503(v=nav.70).aspx
जॉन

3

मैं इस सवाल पर लड़खड़ा गया जब मैं उसी मुद्दे पर भागा। मेरे समस्या का मूल कारण एक गलत तरीके से कॉन्फ़िगर किया गया ऐप पूल था। यह 2.0 के लिए अनजाने में सेट किया गया था, जब इसे 4.0 पर सेट करने की आवश्यकता थी। निम्नलिखित लिंक पर दिए गए उत्तर ने मुझे इस मुद्दे को उजागर करने में मदद की: http://forums.iis.net/t/1160143.aspx


2

मुझे भी यही समस्या थी। जब मैंने IIS के लिए स्टेटिक कंटेंट फिएट जोड़ा, यह ठीक काम करता है।


2

बस एक और संभव समाधान मुझे वही त्रुटि संदेश मिला।

जब एक .NET 4.0 वेब एप्लिकेशन को एक नए एप्लिकेशन पूल में सेटअप करने की कोशिश कर रहा था, तो मुझे यह अजीब त्रुटि प्राप्त हो रही थी कि मुझे यह बताने की कोशिश की जा रही थी कि यह मेरे एसपीएक्स फाइल को स्टैटिक फाइल हैंडलर के साथ प्रोसेस करे, जिसका कोई मतलब नहीं था।

किसी कारण से .NET 4.0 के लिए ISAPI IIS प्रबंधक में सर्वर स्तर के ISAPI और CGI प्रतिबंध क्षेत्र में अक्षम कर दिया गया था । इसे सक्षम करने के लिए सेट करना आवश्यक था , लेकिन IIS 7.5 प्रबंधक इतना जटिल और कठिन है कि इसका पालन करने में मुझे यह पता लगाने में काफी समय लगा।

मैं अनुमान लगा रहा हूं कि चूंकि यह एक 4.0 एप्लिकेशन था जिसे 4.0 इंजन द्वारा संसाधित नहीं किया जा सकता था क्योंकि स्थिर फ़ाइल हैंडलर डिफ़ॉल्ट रूप से उपयोग किया जा रहा था।


2

इसे पढ़ने वाले अन्य लोगों के लिए:

ऐसा तब हो सकता है जब आपके द्वारा पंजीकृत .Net संस्करण आपकी वेबसाइट से जुड़े एप्लिकेशन पूल के 'बेसिक सेटिंग्स' के तहत चयनित न हो। उदाहरण के लिए, आपके साइट्स एप्लिकेशन पूल में .Net v2.0 चयनित है लेकिन आपने v4.0 पंजीकृत किया है


2

विंडोज 10 / फ्रेमवर्क 4.7 के लिए, मुझे निम्नलिखित विधि से HTTP एक्टिवेशन चालू करना था:

  1. नियंत्रण कक्ष> कार्यक्रम और सुविधाएँ> विंडोज सुविधाएँ चालू या बंद करें
  2. .NET फ्रेमवर्क 4.7 उन्नत सेवाओं के तहत, WCF सेवाओं का विस्तार करें, HTTP सक्रियण की जांच करने के लिए चयन करें और WCF के साथ काम करते समय आपको और जो कुछ भी चाहिए।
  3. ओके पर क्लिक करें और इंस्टॉल को अपना काम करने दें, फिर एक प्रशासनिक कमांड प्रॉम्प्ट खोलें और IISRESET कमांड जारी करें

1

cmd -> राइट क्लिक -> व्यवस्थापक के रूप में चलाएँ

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -i


0

IIS प्रबंधक का उपयोग करते हुए, मैंने पाया कि .aspx फ़ाइलों को ISAPI 2.0 में मैप किया गया था ("हैंडलर मैपिंग" के तहत) - हालांकि ASP.NET 4.5 पहले ही स्थापित किया जा चुका था। ISAPI 4.0 64 बिट के लिए एक निष्पादन योग्य को इंगित करने के लिए (उन्हें) भी संपादित करना इस मुद्दे को तय करता है।

निष्पादन योग्य% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_isapi.dll में पाया गया था


0

मुझे आईस 7.5 पर एक आवेदन के लिए यह संदेश मिला है। एक शुद्ध ऐप पूल के साथ .net 2.0 को सौंपा गया है। मुझे हैंडलर मैपिंग में जाने और दो स्क्रिप्ट मानचित्रों को जोड़ने की आवश्यकता थी, नाम के अलावा दोनों समान थे। एक नाम svc-ISAPI-2.0-64 था, दूसरा svc-ISAPI-2.0 था। अनुरोध पथ .svc था। और निष्पादन योग्य% SystemRoot% \ Microsoft.NET \ Framework64 \ v2.0.50727 \ aspnet_isapol.dll था। मैंने iis को फिर से शुरू किया और सभी खुश थे


0

सबसे खराब स्थिति में से एक जिसे मैंने अभी हल किया है - Web.config में परस्पर विरोधी प्रविष्टि होना।

अपनी स्थानीय मशीन पर, मेरे पास .woff एक्सटेंशन IIS में पंजीकृत नहीं था, इसलिए मैंने इसे Web.config का उपयोग करके जोड़ा। लेकिन उत्पादन सर्वर पर .woff में माइम प्रकार पंजीकृत था। इससे एप्लिकेशन स्तर संघर्ष हुआ।

अजीब बात यह है कि इसके लिए कोई त्रुटि लॉग नहीं है। बस एक अनुमान कार्य (पाठ्यक्रम का पहला समय)।

तो मेरे लिए समाधान सिर्फ web.config से हटाने और / या तत्व थे।


0

मेरे पास एक ही मुद्दा था, मैंने वेबसाइट पर लक्ष्य फ्रेमवर्क संस्करण को उसी संस्करण में बदल दिया है जिसे आईआईएस में उसी में विकसित किया गया है। इससे मेरी समस्या हल हो गई। उम्मीद है की यह मदद करेगा...

धन्यवाद


0

यह कई कारण हो सकते हैं, मेरे मामले में एप्लीकेशन पूल के तहत-> एडवांस सेटिंग-> 32 बिट एप्लिकेशन को सक्षम करें (यह सच होना चाहिए)। इसे पहले गलत पर सेट किया गया था।


-1

CMD या पावरशेल का उपयोग करके .Net और CPU आर्किटेक्चर निर्देशिका के अपने स्वाद पर नेविगेट करें

यह आदेश दर्ज करें: aspnet_regiis –r


विंडोज सर्वर 2008 में R2 कहता है: "यह विकल्प विंडोज विस्टा पर समर्थित नहीं है।"
CSharper

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