Pregunta

¿Cuál es la diferencia de agregar y quitar controladores en lugar de?

En un nuevo proyecto web que hice con VS2008, los controladores se definen así:

<system.web>
        ...

      <httpHandlers>
        <remove verb="*" path="*.asmx"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
        <add verb="*" path="/hello/helloworld.xml" type="HandlerTest.HelloWorldHandler, HandlerTest"/>
      </httpHandlers>
      <httpModules>
        <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </httpModules>

    </system.web>

Pero en un proyecto preexistente (es decir, servidor de la comunidad), los controladores http se agregan / eliminan de la siguiente manera:

<system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>
        <security>
            <requestFiltering allowDoubleEscaping="true"/>
        </security>
        <modules runAllManagedModulesForAllRequests="true">
            <remove name="CommunityServer"/>
            <remove name="ScriptModule"/>
            <remove name="UrlRoutingModule"/>
            <add name="CommunityServer" type="CommunityServer.CSHttpModule, CommunityServer.Components"/>
            <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        </modules>
        <handlers accessPolicy="Read, Write, Script, Execute">
            <remove name="WebServiceHandlerFactory-Integrated"/>
            <remove name="ScriptHandlerFactory"/>
            <remove name="ScriptHandlerFactoryAppServices"/>
            <remove name="ScriptResource"/>


            <add verb="GET" name="redirect" path="Utility/redirect.aspx" type="CommunityServer.Components.Redirect, CommunityServer.Components"/>
            <add verb="GET" name="aggbug" path="aggbug.aspx" type="CommunityServer.Components.HttpHandler.AggBugHandler, CommunityServer.Components"/>
            <add verb="GET" name="avatar" path="avatar.aspx" type="CommunityServer.Components.HttpHandler.AvatarHttpHandler, CommunityServer.Components"/>
            <add verb="GET" name="vcard" path="vcard.aspx" type="CommunityServer.Components.HttpHandler.VCardHttpHandler, CommunityServer.Components"/>
            <add verb="GET" name="tinyurl" path="r.ashx" type="CommunityServer.Components.HttpHandler.TinyUrlHttpHandler, CommunityServer.Components"/>
            <add verb="GET" name="weblogsubscription-confirmation" path="weblogsubscription-confirmation.ashx" type="CommunityServer.Blogs.Components.WeblogSubscriptionConfirmation, CommunityServer.Blogs"/>
            <add verb="GET" name="threadsubscription-confirmation" path="threadsubscription-confirmation.ashx" type="CommunityServer.Blogs.Components.ThreadSubscriptionConfirmation, CommunityServer.Blogs"/>
            <add verb="GET" name="cfs-file" path="cfs-file.ashx" type="CommunityServer.Components.FileHttpHandler, CommunityServer.Components"/>
            <add verb="GET" name="cfs-filesystemfile" path="cfs-filesystemfile.ashx" type="CommunityServer.Components.FileSystemFileStorageHttpHandler, CommunityServer.Components"/>
            <add verb="GET" name="resized-image" path="resized-image.ashx" type="CommunityServer.Components.ImageFileResizerHttpHandler, CommunityServer.Components"/>
            <add verb="GET,POST" name="multipleupload" path="multipleupload.ashx" type="Telligent.Glow.MultipleUploadFileHandler, Telligent.Glow"/>
            <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" preCondition="integratedMode" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
            <add name="TinyMCE" verb="GET,HEAD,POST" path="TinyMCE.ashx" type="Moxiecode.TinyMCE.Web.HttpHandler,Moxiecode.TinyMCE"/>
      <add name="Schedule" verb="*" path="schedule.ashx" type="CommunityServer.Scheduler.ScheduleHandler, CommunityServer.Scheduler" />
    </handlers>
    </system.webServer>

¿Por qué hay más de una forma de registrar un controlador http?

¿Fue útil?

Solución

La sección <system.web> se aplica a IIS6 y versiones inferiores, mientras que <system.webServer> se aplica a IIS7 y versiones posteriores. El diseño de web.config fue rediseñado para IIS7 para que sea más potente / amigable, pero a costa de la compatibilidad con versiones anteriores.

Otros consejos

El segundo ejemplo que publicó donde están en el nodo '' es la forma de configurar para IIS 7 que le permite configurar el servidor directamente. El otro método es & Quot; legacy & Quot; y funciona en todas las versiones compatibles de IIS.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top