No artigo anterior, há outro problema legado que não foi resolvido, ou seja, ASP.NET MVC MapRoute .htm não funciona, como resolvê-lo se você não usar runAllManagedModulesForAllRequests="true"? Mais tarde, encontrei uma solução:
Referência: ASP.NET MVC: Rotear uma solicitação .html para uma rota MVC
Discuti por que você deve tentar não usar runAllManagedModulesForAllRequests="true", e então encontrei dois artigos relacionados:
A arte da simplicidade: Otimize o desempenho das suas aplicações web: Não use runAllManagedModulesForAllRequests="true". Não use runAllManagedModulesForAllRequests="true" ao fazer seu roteamento MVC funcionar Trecho de uma descrição no texto:
Essa solução altamente recomendada pode causar outros problemas. Esses problemas aparecem na forma de fazer todos os seus módulos HTTP registrados rodarem em todas as requisições, não apenas em requisições gerenciadas (por exemplo, .aspx). Isso significa que os módulos vão rodar em todos os .jpg .gif .css .html .pdf etc. runAllManagedModulesForAllRequests é como um switch de canal para Módulos IIS e requisições; se esse switch for ativado, todas as solicitações que acessam esse site vão para Módulos para processamento, o que inclui algumas requisições de arquivo estático, que também é o tipo mais comum de "não necessidade de processar", pois a solicitação entra em Módulos, então deve haver um programa correspondente para processá-la. Isso causa sobrecarga desnecessária de desempenho, porque arquivos estáticos são apenas para exibição, não há necessidade de processar Módulos, sites pequenos não importam, quando alguns grandes sites fotovoltaicos fazem o mesmo, isso gera alguma "pressão" no processamento do programa dos Módulos do IIS, e a conclusão resumida em um post no blog acima é desperdício (desperdício... ) e potencial (potencial... )。
Vamos fazer um teste com Application_BeginRequest para ver quais requisições são registradas para diferentes configurações do runAllManagedModulesForAllRequests, e testar o código de exemplo:
runAllManagedModulesForAllRequests="fasle", data.txt log:
http://localhost:55127/
http://localhost:55127/bundles/test2?v=2Fz3B0iizV2NnnamQFrx-NbYJNTFeBJ2GM05SilbtQU1
http://localhost:55127/bundles/test1?v=MDbdFKJHBa_ctS5x4He1bMV0_RjRq8jpcIAvPpKiN6U1 runAllManagedModulesForAllRequests="true", data.txt registro:
http://localhost:55127/
http://localhost:55127/bundles/test2?v=2Fz3B0iizV2NnnamQFrx-NbYJNTFeBJ2GM05SilbtQU1
http://localhost:55127/bundles/test1?v=MDbdFKJHBa_ctS5x4He1bMV0_RjRq8jpcIAvPpKiN6U1
http://localhost:55127/Content/logo_small_1.gif
http://localhost:55127/Content/logo_small_4.gif
http://localhost:55127/Content/logo_small_2.gif
http://localhost:55127/Content/logo_small_3.gif logo_small_* A imagem é o que eu adicionei na visualização, isso é apenas um pedido para testar uma imagem estática, se você estiver em um site grande, adicionar o código de teste do pedido e depois atualizar a página, verá que há muitos pedidos sem sentido. Talvez você olhe o registro de teste acima, ele não parece explicar nenhum problema, mas imagine que um site com muitos arquivos estáticos, e o número de visitas é de dezenas de milhões, e o site contém muitas páginas, embora seja um problema pequeno, será infinitamente ampliado, e finalmente você descobre que é apenas um problema de configuração.
É isso, vou mudar o código.
|