2010-05-31 13 views

risposta

11

System.ServiceModel.Activation.HttpModule provengono perché è stata installata la funzionalità "Attivazione HTTP di Microsoft .NET Framework 3.5.1"/"Attivazione di Windows Communication Foundation". Se non ti serve la funzionalità, puoi disinstallarla rimuovendo il modulo dal tuo web.config. I moduli meno inutilizzati caricati eseguono più velocemente la tua applicazione web.

Se si installa questa funzione dopo l'installazione di .NET Framework 4 sul server è possibile ricevere i problemi descritti in http://blogs.iis.net/webtopics/archive/2010/04/28/system-typeloadexception-for-system-servicemodel-activation-httpmodule-in-asp-net-4.aspx.

In generale, un modulo HTTP viene chiamato su ogni richiesta in risposta agli eventi BeginRequest() e EndRequest(). Di conseguenza, il modulo viene eseguito prima e dopo l'elaborazione di una richiesta. Nella sezione "Come funzionano i moduli HTTP" su http://msdn.microsoft.com/en-us/library/bb398986(v=VS.100).aspx puoi leggere ulteriori informazioni sui moduli HTTP.

http://msdn.microsoft.com/en-us/library/ms227673.aspx descrive come creare un modulo HTTP personalizzato. Alcuni piccoli moduli personalizzati possono essere davvero utili. Ad esempio, è possibile leggere in How to remove the ".svc" extension in RESTful WCF service? un esempio di codice (che ha origine dal libro "RESTful .NET", Capitolo 5, pagina 96) "Rimozione dell'estensione .SVC dagli URL REST WCF". In http://www.west-wind.com/weblog/posts/570695.aspx puoi leggere come fare lo stesso con "IIS 7 Rewrite Module".

Le informazioni generali sul modulo HTTP non fanno parte della domanda, ma l'ho inserita per capire meglio cosa fa Activation.HttpModule e quali altri moduli più utili è possibile utilizzare o scrivere.

-2

Un modulo http è un assembly .net che viene chiamato ogni volta che l'applicazione Web riceve una richiesta. Questo è quello standard che asp.net fornisce che collega il tuo codice di applicazione Web .net all'infrastruttura web di IIS.

Vedere here for an explanation.

moduli HTTP

un modulo HTTP è un assembly che è invitato ogni richiesta che è fatto alla vostra applicazione. I moduli HTTP sono chiamati come parte della pipeline di richieste e hanno accesso agli eventi del ciclo di vita durante la richiesta. I moduli HTTP pertanto consentono di esaminare le richieste in arrivo e di agire in base alla richiesta . Permettono anche di esaminare la risposta in uscita e modificarla.

In IIS 6.0, la pipeline di richiesta ASP.NET è separata dalla pipeline di richiesta del server Web . In IIS 7.0, , la pipeline di richieste ASP.NET e la pipeline di richiesta del server Web possono essere integrate nella richiesta nella pipeline. In IIS 7.0, questo è riferito a come modalità integrata. La pipeline unificata presenta numerosi vantaggi per gli sviluppatori di ASP.NET . Ad esempio, lo consente ai moduli con codice gestito di ricevere le notifiche della pipeline per tutte le richieste , anche se le richieste non sono per le risorse ASP.NET. Tuttavia, se si desidera utilizzare il protocollo , è possibile eseguire IIS 7.0 nella modalità Classic , che emula ASP.NET con in IIS 6.0. Per ulteriori informazioni, vedere Ciclo di vita dell'applicazione ASP.NET Panoramica per IIS 7.0.

ASP.NET I moduli HTTP sono come i filtri ISAPI perché sono richiamati per tutte le richieste. . Tuttavia, sono scritti in codice gestito e sono completamente integrati con il ciclo di vita di un'applicazione ASP.NET . È possibile inserire il codice sorgente del modulo personalizzato nella cartella App_Code della propria applicazione, oppure è possibile inserire moduli personalizzati compilati come assiemi nella cartella Bin di un'applicazione .

ASP.NET utilizza i moduli per implementare varie funzioni dell'applicazione, che include l'autenticazione forme, caching, lo stato della sessione, e il client servizi di script. In ogni caso, quando i servizi sono abilitati, il modulo viene chiamato come parte di una richiesta e esegue attività che si trovano all'esterno dello scope di una singola richiesta di pagina.I moduli possono consumare eventi dell'applicazione e possono generare eventi che possono essere gestiti da nel file Global.asax. Per ulteriori informazioni sugli eventi dell'applicazione , vedere Durata applicazione ASP.NET Panoramica del ciclo per IIS 5.0 e 6.0 e Ciclo di vita dell'applicazione ASP.NET Panoramica per IIS 7.0.

+0

So che cos'è un modulo Http, ma non questo. Puoi spiegare in dettaglio cosa intendi per "onnects your .net web application code to the IIS web infrastructure." mi sembra strano che questo sarebbe stato implementato come un modulo http - se questo è ciò che fa è difficilmente opzionale. – UpTheCreek

+0

Il testo che hai citato riguarda i moduli http in generale: la mia domanda riguarda un modulo specifico. – UpTheCreek

4

Questo modulo è ciò che consente ai servizi WCF (Windows Communication Foundation) di funzionare (a partire da .net Framework 3.0).

Si può tranquillamente ignorarlo e non dovrebbe causare problemi. Se vuoi davvero liberartene, puoi rimuoverlo dal tuo file web.config di root (ad esempio in \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config \ web.config). Ma suggerisco di lasciarlo lì solo nel caso in cui hai bisogno di WCF ad un certo punto.