我最近更新了一些ASP.NET Nuget包并修改了我网站的index.html
文件。现在我得到404-Not Found错误,但仅限于根路径,即在没有子目录或文件名的情况下键入网站地址时。
如果我明确附加" /index.html"然后正确显示默认文档。
我还注意到我的web.config文件中的以下行有一个意外的行为:如果我删除该行,则可以显示根路径,但Web API请求返回404-Not Found响应。如果我保留它,那么Web API请求可以正常工作,但默认文档会导致404-Not Found。
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
完整的#34;处理程序&#34; web.config的部分如下:
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
我没有更改默认文档设置或物理路径文件权限。我该如何解决这个问题?
答案 0 :(得分:0)
我刚刚发现问题与我在index.html中的修改无关。实际原因源于MVC路由的工作方式:我刚刚将MVC组件添加到我的项目中,新添加的MVC路由配置开始消化所有无扩展路径。根据{{3}},我刚刚为根路径(空字符串)添加了一个例外,问题得到解决:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapMvcAttributeRoutes();
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("");
...
}
}