2009-10-15 12 views
5

Próbuję odwzorować żądania klasycznych stron asp, które będą obsługiwane przez .net, aby działał przez niestandardowy httpmodule.Odwzorowywanie klasycznych stron asp na .net w IIS

W IIS mam przemapowana wnioski asp do aspnet_isapi.dll - Jestem pewien, że zrobiłeś ten bit prawo

Teraz w mojej aplikacji testowej ja dostaję ten błąd:

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 

Searching online dla tego błędu pokazuje obciążenie osób mających problemy z cassini, ale to nie jest naprawdę istotne, testuję to na IIS 5.1 na maszynie wirtualnej XP i przetestowałem na IIS6 również otrzymując ten sam błąd.

Przestrzegałem instrukcji dotyczących dodawania i rejestrowania przystawki httphandler (zobacz http://support.microsoft.com/default.aspx?scid=kb;en-us;Q308001), ale nie wiem, co umieścić w procedurze ProcessRequest, aby upewnić się, że żądanie zostanie przekazane dalej. Jaki jest domyślny .net HttpHandler, mogę tylko na mapie, aby ten w web.config ?: tak coś jak:

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

Jak mogę powiedzieć, ASP.NET, że musi przekazać wnioski na ASP i nie blokować?

+0

Mam ten sam problem, ale używam wbudowanego Serwer internetowy Cassini. Mam witrynę sieci Web ASP.NET 2.0 (nie jest to aplikacja internetowa), w której strona główna i inne strony są klasycznymi ASP. NIE mam żadnego wpisu w moim v2.0.50727 \ CONFIG \ web.config, który mapuje * .asp do zabronionego programu obsługi. Czy powinienem otworzyć nowy wątek lub czy ten komentarz wystarczy, aby uzyskać pomoc? –

Odpowiedz

2

Wygląda na to, że rozszerzenie .asp jest zmapowane na HttpForbiddenHandler.

Jeśli używasz programu ASP.NET 1.1, a następnie otwórz następujący plik:

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

Jeśli używasz ASP.NET 2.0 a następnie otworzyć ten plik

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

wyszukiwania dla " path="*.asp" ", a następnie skomentuj tę linię. To będzie coś w stylu:

<!-- 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

dzięki za odpowiedź: using 2.0/in web.config/no entry dla .asp, (musiał zostać złapany przez wpis wieloznaczny). Dodano linię dla .asp, wypróbowano różne typy Handlerów: przy DefaultHttpHandler występuje ten sam błąd, StaticFileHandler próbuje pobrać stronę asp do przeglądarki, .UI.PageHandlerFactory zgłasza ten błąd: Nie ma żadnego dostawcy kompilacji zarejestrowanego dla rozszerzenia '. żmija'. Możesz zarejestrować się w sekcji .... Musisz zostawić to teraz, ale wróci na później, aby sprawdzić, czy jakikolwiek sposób, aby to zadziałało. Być może nie ma logicznego sensu wypróbowanie tego – DannykPowell

+0

@Kev - Mam ten sam problem z nieco innym środowiskiem (proszę zobaczyć mój komentarz pod oryginalnym opisem problemu). Podejrzewam, że powinienem otworzyć nowy wątek, ale nie jestem pewien ... –

+0

@John - ponieważ twój problem jest związany z serwerem cassini, otworzyłbym nowe pytanie. – Kev

2

W rzeczywistości jesteś tylko o jeden krok daleko od sukcesu. Dodając następującą sekcję na swojej stronie internetowej (lub lokalnego katalogu wirtualnego) pliku web.config:

<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

Hej, to działało dla mnie testowanie mojej aplikacji Framework 4.5 w IIS Express, ale kiedy przenosiłem się na serwer produkcyjny, to się nie udało ... Masz jakiś pomysł? – tomasofen

0

Zlokalizuj poniższy plik:

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

gdzie <FramworkVersion> jest nazwa folderu:

Otwórz w edytorze XML .. (nawet notatnik jest w porządku)

i dodaj poniżej linii:

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

pod poniżej XPath:

configuration/system.web/httpHandlers

zastąpić istniejący jeden!

Dodaj poniżej linii:

<add extension=".asp" type="System.Web.Compilation.PageBuildProvider"/> 

pod poniżej XPath:

/configuration/system.web/compilation/buildProviders 

pracował jak klejnot dla mnie :)

Powiązane problemy