ASP.Net MVC 3/4 hospedado em mapeamentos de manipulador padrão do IIS 7.5

9

Quais são os Mapeamentos de Manipulador Padrão corretos para os serviços ASP.Net, ASP.Net MVC e WCF hospedados no IIS 7.5 .Net Framework 4.0 no Windows 7 (PRO)?

Fora de uma equipe de 8 desenvolvedores que instalaram o ASP.Net MVC 3/4, apenas um desenvolvedor pode obter um aplicativo ASP.Net MVC 3 básico para trabalhar no site padrão no IIS 7.5 sem alterar os Mapeamentos do Manipulador, nenhum da equipe poderia obter um segundo site com o mesmo site para trabalhar com o site sirectory localizado em um subdiretório do site raiz. inetpub / wwwroot / site

Abaixo estão três dos Mapeamentos do Manipulador definidos no IIS 7.5, todos são diferentes e não foram alterados pelos desenvolvedores.

Qual é a melhor maneira de definir as configurações necessárias como Padrões e garantir que todas as estações de trabalho tenham as mesmas configurações aplicadas sem defini-las no arquivo Web Web.Config ?

    
por Lloyd 16.08.2012 в 12:02
fonte

2 respostas

4

Eu implementei com sucesso o MVC 4 no meu IIS 7.5 local (windows 7). Isso corrige meu problema (como mencionado aqui )

(para o sistema x64)

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

(ou se você está no sistema de 32 bits)

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

Além disso, alterei o DefaultAppPool para usar o v4-Integrated (do v2-Classic), converti o site para o aplicativo e o aplicativo para usar o DefaultAppPool.

Aqui está o meu Web.config completo. Tem o Handler incluído.

<?xml version="1.0" encoding="utf-8"?>

                              

<compilation targetFramework="4.0" />

<pages>
  <namespaces>
    <add namespace="System.Web.Helpers" />
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Routing" />
    <add namespace="System.Web.WebPages" />
  </namespaces>
</pages>

    

<modules runAllManagedModulesForAllRequests="true" />

<handlers>
  <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
  <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
  <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
  <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
  <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
  <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>

                                                       

    
por Jeson Martajaya 21.11.2013 / 16:33
fonte
1

Supondo que seu site padrão tenha sido configurado como um aplicativo no IIS, a causa mais provável desse problema é ter o pool de aplicativos executando o pipeline clássico em oposição ao pipeline integrado. Em todos os aplicativos MVC que implantamos no Azure, servidores IIS locais e máquinas de desenvolvimento, não tivemos que tocar nos mapeamentos do manipulador, a menos que seja necessário enganar o IIS 6 para hospedar um site MVC.

Para verificar o pipeline do pool de aplicativos:

  1. Abra o gerenciador do IIS

  2. Clique com o botão direito do mouse no site padrão e escolha Configurações avançadas. Isso abrirá uma janela

  3. AnoteonomedoPooldeaplicativos.Agora,fecheestajanelaecliqueemPoolsdeAplicativosnomenuàesquerdanogerenciadordoIIS

  4. Se o Modo de Pipeline Gerenciado não estiver definido como Integrado (por exemplo, lendo clássico), clique com o botão direito do mouse no Pool de Aplicativos e selecione as configurações básicas. A partir daqui, você pode alterar o tipo de pipeline. Escolha integrado.

5.Opooldeaplicativosdeveserreiniciadoimediatamente,masvocêpodeoptarporreiniciá-loouoIISmanualmenteparagarantirquesuasalteraçõestenhamefeito.

Observação-SevocêestiverexecutandooIIS6, aqui está um link que descreve como ajustar os mapeamentos do manipulador para que o IIS 6 possa executar um site MVC.

Adendo - Se você estiver mexendo com os mapeamentos do manipulador, dependendo do que foi alterado, poderá tentar isso em uma instalação limpa do IIS. Não está claro quais manipuladores foram configurados incorretamente, pois sua equipe tentou fazer um trabalho de implantação do MVC.

    
por Tommy 15.11.2013 / 22:13
fonte