2010-12-06 3 views
0

Ich habe ein leeres ASP.NET-Projekt mit einem einzigen HttpHandler, gespeichert in Index.ashx. Ich möchte alle Anfragen durch diese gehen,Wie alle Anforderungen an Handler übergeben werden, der Visual Studio Development Server verwendet?

public void ProcessRequest(HttpContext context) 

ich mein Projekt Projekteigenschaften geändert haben, so dass es, dass Handler standardmäßig geladen wird. Wenn ich jedoch eine andere URL im Browser eingabe, wird sie nicht durch diesen Handler geleitet. Wie bekomme ich das hin?

Antwort

1

... und explizit meine Frage zu beantworten, können Sie etwas zu Ihrer web.config-Datei (die auch über den IIS-Manager GUI durchgeführt werden kann) hinzufügen:

<configuration> 
    <system.webServer> 
     <handlers> 
      <add name="RequestHandler" path="*" verb="*" type="WebApplication6.RequestHandler" /> 
     </handlers> 
    </system.webServer> 
</configuration> 

wo „name“ ein beliebiger Name und "type" ist der vollständig qualifizierte Klassenname (mit Namespace).

1

Was Sie tun möchten, wird in der Regel über HttpModule und nicht über HttpHandler erreicht. Das Modul kann alle Anfragen abfangen und Anfragen/Antworten nach Bedarf ändern.

+0

http://mvolo.com/blogs/serverside/archive/2007/08/15/Developing-IIS7-web-server-features-with-the-.NET-framework.aspx yeah .... ein Modul klingt wie eine bessere Passform. Vielen Dank. jetzt muss ich lernen, wie man einen von diesen stattdessen schreibt !! Handler waren einfach :( – mpen

+0

Ich bin immer noch ein wenig verwirrt, was ich sollte verwenden. Ein Modul klingt angemessen, weil es auf * alle * Anfragen, aber wirklich, ich will nur es * behandeln * die Antwort Baue einen URL-Router. Die App sollte die Anfrage-URL nehmen, eine Liste von Routen durchsuchen, und dann die entsprechenden Methoden aufrufen und eine Antwort zurückgeben. Module sind keine Antwort für solche Antworten, oder? – mpen

+0

@Ralph In Ihrem Fall erzeugt das Modul keine Antwort - es sendet einfach die Anfrage an den richtigen Handler (URL-Routing). Ihr Modul muss sich nicht mit der Antwort pro Wort auseinandersetzen. BTW, Routing ist bereits in .NET 4 verfügbar. – VinayC

Verwandte Themen