为什么我可以从MVC应用程序中删除ExtensionlessUrlHandler而没有任何不良影响?

问题描述 投票:22回答:2

我正在尝试简化我的MVC应用程序,并且尽可能多地删除。有人可以向我解释下面的代码在应用程序根目录下的web.config文件中做什么。我已将其注释掉,但仍设法运行该应用程序...

<system.webServer>

  <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>
    ...

我看过这个问题:ASP.NET MVC 4 and ExtensionlessUrlHandler,它的答案链接到此博客:http://blogs.msdn.com/b/tmarq/archive/2010/05/26/how-extensionless-urls-are-handled-by-asp-net-v4.aspx,但我找不到它来解释我的问题。

我在开发和生产中都使用IIS 8,ASP.NET MVC 4,.NET 4.5

asp.net-mvc web-config isapi
2个回答
10
投票

IIS express使用与IIS不同的处理程序名称

添加以下标记,它应该为IIS express only禁用无扩展名的处理程序>

<remove name="ExtensionlessUrl-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrl-Integrated-4.0" />

21
投票

您应该检查您的web.config文件。如果存在以下设置

© www.soinside.com 2019 - 2024. All rights reserved.