2009-04-02 13 views
9

Bir kök klasörün tüm alt klasörlerini iç içe geçtikten bağımsız olarak eklemek için bir HttpHandler kaydettirmek istiyorum. Aşağıdaki kod ile davranışı sadece bunu yapmak için beklerdim ancak aslında yalnızca doğrudan kök klasöründeki öğeleri içerir.Asp.Net'deki tüm alt klasörler için HttpHandler nasıl kaydedilir?

Ben tabii kökün hemen altında bir şey söylemek için bir yol karşılaşmaya henüz Ancak ikinci kademe olan her şeyi içerecek şekilde aşağıdaki gibi kayıt olabilirsiniz
<httpHandlers> 
    <add verb="*" path="root/*" type="HandlerType, Assembly" /> 
</httpHandlers> 

.

<httpHandlers> 
    <add verb="*" path="root/*/*" type="HandlerType, Assembly" /> 
</httpHandlers> 

budur şey şapka uzunca bir süre beni rahatsız etti ve ben basit bir çözüm duymak isteriz.

"Kök" dediğimde uygulamanın kökünü kastetmiyorum ve uygulamadaki tüm istekleri işlenecek bir modüle göndermek istemediğimi açıklığa kavuşturmak isterim.

cevap

0

Belki de HttpHandler yerine HttpModule kullanmalısınız.

+0

Bu elbette her zaman bir seçenektir, ancak yalnızca belirli bir klasörün altındaki tüm istekler için uygulamadaki tüm istekler için işleyiciye ihtiyacım yoktur. Sorgumda belirsiz olabilirdim, "root" ile klasör ağacındaki sadece o dalın sitenin kökünü kastetmiyorum. – YonahW

6

Sen yolu bu "kök" klasöründe web.config oluşturabilir = "*"

+1

Bu harika bir fikir çünkü benim durumumda bir klasörle eşleşmeyen bir url ile uğraşmaktayım. – YonahW

19

Ayrı web.config gerek yoktur. Birincil web.config < konumu> elemanı kullanın:

<!-- Configuration for the "root" subdirectory. --> 
<location path="root"> 
    <system.web> 
    <httpHandlers> 
     <add verb="*" path="root" type="HandlerType, Assembly"/> 
    </httpHandlers> 
    </system.web> 
</location> 
+0

Bu oldukça havalı. Bu öğeyi hiç bilmiyordum, paylaşım için teşekkürler. – YonahW

+0

Bu hile yaptı! Çok teşekkürler! – Allov

+0

Bu kesinlikle kabul edilen cevap olmalı! – ssougnez

0

Her gelen istek için url kontrol eden bir http modülü yaratabilir.

  • hemen aşağıda bazı kukla değere Context.Items içinde
  • değiştirme isteği yolunu tam, orijinal URL koyun: istek url herhangi klasörde ise size işleyicisi işlemek istiyorum, bunu yapar İşleyicinin klasörü, işleyicinin yapılandırmasını eşleştiriyor.

işleyicisi şimdi adı verilecek ve bu istekte kukla url bulacaksınız. Bu URL'yi yok sayar ve Context.Items'de bulacağı gerçek URL'yi işler.

İlgili konular