2009-10-15 19 views
5

Özel bir httpmodule üzerinden çalışabilmesi için .net tarafından ele alınacak klasik asp sayfaları isteklerini eşleştirmeye çalışıyorum.Klasik asp sayfalarını IIS'de 0net'e eşleme

IIS

Ben remapped var asp istekleri aspnet_isapi.dll için - ben bu hatayı alıyorum benim test uygulamasında Şimdi bu biraz sağa

yaptık eminim:

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 

aranıyor Bu hata için çevrimiçi cassini ile ilgili sorunlar olan insanların bir yükünü gösterir, ancak bu gerçekten alakalı değil, ben bu XP dev makinesinde hem IIS 5.1 üzerinde test ediyorum ve aynı hata alıyorum IIS6 üzerinde test ettik.

Bir httphandler eklemek ve kaydetmek için yönergeleri takip ettim (bkz. http://support.microsoft.com/default.aspx?scid=kb;en-us;Q308001), ancak isteğin iletildiğinden emin olmak için ProcessRequest rutinine ne yazacağımı bilmiyorum. Varsayılan Sadece ?: web.config bu eşlenebildiğinden, .net HttpHandler nedir şöyle bir şey:

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

Nasıl bu blokta olup, ASP istekleri geçmek gerekiyor asp.net anlatır?

+0

Ben aynı sorunu yaşıyorum ama kullanıyorum yerleşik Cassini web sunucusu. Ana sayfa ve diğer sayfaların klasik ASP olduğu bir ASP.NET 2.0 web sitesi (web uygulaması değil) var. Yasak işleyiciye * .asp eşlenen v2.0.50727 \ CONFIG \ web.config dosyasında herhangi bir giriş yok. Yeni bir iş parçacığı mı açmalıyım yoksa bu yorum biraz yardım almak için yeterli mi? –

cevap

2

HttpForbiddenHandler ile eşleştirilen .asp uzantısı eşlenmiş gibi görünüyor.

sonra aşağıdaki dosyayı açmak ASP.NET 1.1 kullanıyorsanız: "için

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

Arama: Eğer o zaman bu dosyayı açmak ASP.NET 2.0 kullanıyorsanız

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

path="*.asp" ", sonra bu satırı yorumlayın. Şunlar hoşunuza gidecek:

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

cevabı için teşekkürler: 2.0/in. Web.config/.asp için giriş kullanılmadan, (joker girişine yakalanmış olmalı). .asp için bir hat eklendi farklı İşleyici türlerini denedi: DefaultHttpHandler aynı hatayı alıyorum ile StaticFileHandler tarayıcıya asp sayfasını indirmek için çalışır, .UI.PageHandlerFactory bu hata atıyor: uzantısı' için kayıtlı hiçbir yapı sağlayıcısı yoktur. asp'. Sen Şimdi bu terk etmek zorunda ama herhangi bir şekilde bu işe almak için olmadığını görmek için daha sonra geri gelecek .... bölümünde bir tane kaydedebilirsiniz. Belki de bu – DannykPowell

+0

@Kev denemek mantıklı bir anlam ifade etmiyor - Ben biraz farklı bir ortamda aynı sorun var (lütfen orijinal sorun girişinde benim yorumuma bakın). Yeni iş parçacığı açmam gerektiğinden şüpheleniyorum ama emin değilim ... –

+0

@John - senin sorununun cassini sunucusuna özgü olduğunu görmek yeni bir soru açabilirdim. – Kev

2

Aslında başarıdan sadece bir adım uzaktasınız.

<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

Hey, bu benim Framework 4.5 uygulamamı IIS Express altında test etmek için çalıştı, ancak üretim sunucusuna taşınırken başarısız oluyor ... Herhangi bir fikrin var mı? – tomasofen

0

aşağıda dosyasını bulun: Yerel web (veya sanal dizin) web.config dosyası için aşağıdaki bölümü ekleme

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

<FramworkVersion> klasör adıdır:

bir XML düzenleyicisinde açın .. (hatta not defteri düzgün)

ve çizginin altına ekleyin: XPath altında

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

altında:

configuration/system.web/httpHandlers

eskisinin yerine!

sınırının altında ekleyin:

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

XPath altında altında:

/configuration/system.web/compilation/buildProviders 

benim için mücevher gibi çalıştı :)