2009-10-15 13 views
5

में .net क्लासिक एएसपी पृष्ठों को मैप करने के लिए मैपिंग क्लासिक एएसपी पृष्ठों के लिए अनुरोधों को मैप करने की कोशिश कर रहा हूं, ताकि यह एक कस्टम httpmodule के माध्यम से चलाया जा सके।आईआईएस

आईआईएस में मैं पुनः मानचित्रित है एएसपी अनुरोध aspnet_isapi.dll के लिए - मुझे यकीन है कि मैं अपने परीक्षण अनुप्रयोग में अब इस बिट सही

किया है मैं इस त्रुटि हो रही है कर रहा हूँ:

Server Error in '/TestASPRedirect' Application. 
-------------------------------------------------------------------------------- 

This type of page is not served. 
Description: The type of page you have requested is not served because it has been explicitly forbidden. The extension '.asp' may be incorrect. Please review the URL below and make sure that it is spelled correctly. 

Requested URL: /testaspredirect/test.asp 

खोज इस त्रुटि के लिए ऑनलाइन कैसिनी के साथ समस्या रखने वाले लोगों का एक भार दिखाता है, लेकिन यह वास्तव में प्रासंगिक नहीं है, मैं इसे XP dev मशीन पर आईआईएस 5.1 दोनों पर परीक्षण कर रहा हूं, और आईआईएस 6 पर भी एक ही त्रुटि प्राप्त करने का परीक्षण किया है।

मैंने एक प्रेजेंटफैंडर जोड़ने और पंजीकरण करने के लिए निर्देशों का पालन किया है (http://support.microsoft.com/default.aspx?scid=kb;en-us;Q308001 देखें), लेकिन मुझे नहीं पता कि अनुरोध जारी होने के लिए ProcessRequest दिनचर्या में क्या रखा जाए। डिफ़ॉल्ट .net HttpHandler, क्या है मैं सिर्फ web.config में ?: इस मैप कर सकते इसलिए की तरह कुछ:

<httpHandlers> 
    <add verb="*" path="*.asp" type="standard.nethttphandler"/> 
</httpHandlers> 

कैसे मैं asp.net कि यह ब्लॉक पर और नहीं एएसपी अनुरोध पारित करने के लिए की जरूरत है बता सकते हैं?

+0

मैं एक ही समस्या हो रही है, लेकिन मैं उपयोग कर रहा हूँ में निर्मित कैसिनी वेब सर्वर। मेरे पास एक एएसपी.नेट 2.0 वेबसाइट है (वेब ​​ऐप नहीं) जहां होम पेज और अन्य पेज क्लासिक एएसपी हैं। मेरे पास v2.0.50727 \ CONFIG \ web.config में कोई प्रविष्टि नहीं है जो प्रतिबंधित हैंडलर को * .asp मानचित्र करता है। क्या मुझे एक नया धागा खोलना चाहिए या क्या यह टिप्पणी कुछ मदद पाने के लिए पर्याप्त है? –

उत्तर

2

ऐसा लगता है कि .asp एक्सटेंशन HttpForbiddenHandler पर मैप किया गया है।

आप ASP.NET 1.1 उपयोग कर रहे हैं उसके बाद निम्न फ़ाइल को खोलने:

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config

आप ASP.NET 2.0 का उपयोग कर रहे हैं तो इस फ़ाइल को खोलने: "के लिए

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config

खोजें path="*.asp" ", फिर उस पंक्ति को टिप्पणी करें। इसे कुछ पसंद आएगा:

<!-- machine.config/ASP.NET 1.1--> 
<add path="*.asp" verb="*" 
    type="System.Web.HttpForbiddenHandler"/>` 

<!-- web.config/ASP.NET 2.0--> 
<add path="*.asp" verb="*" 
    type="System.Web.HttpForbiddenHandler" validate="true"/>` 
+0

उत्तर के लिए धन्यवाद: 2.0/web.config/.asp में कोई प्रविष्टि का उपयोग करके, (वाइल्डकार्ड प्रविष्टि द्वारा पकड़ा जाना चाहिए)। .asp के लिए एक पंक्ति जोड़ा गया, विभिन्न हैंडलर प्रकारों की कोशिश की: DefaultHttpHandler के साथ एक ही त्रुटि मिलती है, StaticFileHandler ब्राउज़र पर एएसपी पेज डाउनलोड करने का प्रयास करता है .UI.PageHandlerFactory इस त्रुटि को फेंकता है: एक्सटेंशन के लिए कोई बिल्ड प्रदाता पंजीकृत नहीं है। एएसपी '। आप सेक्शन में पंजीकरण कर सकते हैं .... इसे अभी छोड़ना है, लेकिन यह देखने के लिए बाद में वापस आ जाएगा कि यह काम करने के लिए कोई तरीका है या नहीं। हो सकता है कि यह – DannykPowell

+0

@ केव को आजमाने के लिए तार्किक अर्थ नहीं बनाये - मुझे थोड़ा अलग वातावरण के साथ एक ही समस्या है (कृपया मूल समस्या प्रविष्टि के तहत मेरी टिप्पणी देखें)। मुझे संदेह है कि मुझे नया धागा खोलना चाहिए लेकिन सुनिश्चित नहीं है ... –

+0

@ जॉन - आपकी समस्या के रूप में देखकर कैसिनी सर्वर के लिए विशिष्ट है, मैं एक नया प्रश्न खोलूंगा। – Kev

2

असल में आप सफलता से केवल एक कदम दूर हैं।

<configuration> 
... 
<system.web> 
    <compilation> 
     <buildProviders> 
      <add extension=".asp" type="System.Web.Compilation.PageBuildProvider"/> 
     </buildProviders> 
    </compilation> 
    <httpHandlers> 
     <add path="*.asp" verb="*" type="System.Web.UI.PageHandlerFactory" validate="true"/> 
    </httpHandlers> 
</system.web> 

+0

अरे, यह मेरे लिए आईआईएस एक्सप्रेस के तहत मेरे फ्रेमवर्क 4.5 आवेदन का परीक्षण करने के लिए काम करता था, लेकिन जब उत्पादन सर्वर पर जाता है, तो यह विफल रहता है ... कोई विचार? – tomasofen

0

नीचे फ़ाइल का पता: अपने स्थानीय वेबसाइट (या वर्चुअल निर्देशिका) web.config फ़ाइल में निम्न अनुभाग जोड़ना

C:\WINDOWS\MICROSOFT.NET\FRAMEWORK\<FramworkVersion>\Config\web.config

जहां <FramworkVersion> फ़ोल्डर नाम है:

इसे एक एक्सएमएल संपादक में खोलें .. (यहां तक ​​कि नोटपैड ठीक है)

और रेखा से नीचे जोड़ें:

<add path="*.asp" verb="*" type="System.Web.UI.PageHandlerFactory" validate="True"/> 

तहत XPath नीचे:

configuration/system.web/httpHandlers

मौजूदा एक की जगह!

रेखा से नीचे जोड़ें:

XPath नीचे के तहत
<add extension=".asp" type="System.Web.Compilation.PageBuildProvider"/> 

:

/configuration/system.web/compilation/buildProviders 

मेरे लिए मणि की तरह काम किया :)