Diferença entre <system.web> e <system.webServer>?

197

Sempre que preciso adicionar um manipulador ou módulo para o ASP.NET com o IIS7, as instruções sempre dizem para incorporá-lo em duas seções: system.webe system.webserver.

<system.web>
    <httpHandlers>
    </httpHandlers>
    <httpModules>
    </httpModules>
</system.web>

E isto:

<system.webServer>
    <modules>
    </modules>
    <handlers>
    </handlers>
</system.webServer>

Qual é a diferença entre essas duas seções?

Além disso, se eu não adicioná-lo à system.webseção, meu depurador do Visual Studio 2008 também não funcionará corretamente.

danmine
fonte
2
uma referência atual melhor para isso é: msdn.microsoft.com/en-us/library/46c5ddfy.aspx
Shannon

Respostas:

157

A seção system.web é para configurar o IIS 6.0, enquanto a versão system.webserver é usada para configurar o IIS 7.0. O IIS 7.0 inclui um novo pipeline do ASP.NET e algumas diferenças de configuração, portanto, as seções extras de configuração.

Contudo...

Se você estiver executando o IIS 7.0 apenas no modo integrado, não precisará adicionar os manipuladores às duas seções. Adicioná-lo ao system.web também é um substituto para o IIS 7.0 operando no modo clássico, a menos que eu esteja enganado. Eu não fiz testes extensivos sobre isso.

Consulte http://msdn.microsoft.com/en-us/library/bb763179.aspx para obter mais informações.

Chris
fonte
4
E quanto a atributos como <httpRuntime>, colocados em system.web, mas ainda fazendo diferença no modo Integrado do IIS 7?
sclarson 8/07
38
A seção system.web não é substituída pela seção system.webserver, apenas estendida.
Chris
No IIS 8.5, descobri que a httpCookiesconfiguração não está disponível no system.webServer, mas funciona se eu criar um system.web e colocá-lo lá.
Eborbob
44

O primeiro é para o Modo Clássico.

O último é para o Modo de Pipeline Integrado (disponível no IIS7 +).

leppie
fonte
Dada a minha experiência, essa é uma resposta melhor em duração, clareza e realidade. Além do modo clássico sobre o antigo, adicione IIS expressar e outros servidores que não são IIS 7.
Ben Gripka