Asp.net mvc ASP.NET Core 3.1 MVC返回含糊不清的UsMatchException,服务器错误500
我正在使用ASP.NET Core 3.1 MVC和区域 这个问题发生在使用IIS Express的开发中,我甚至还没有达到可以部署到实时(IIS)服务器的程度。服务器在启动过程结束时抛出错误500 例外情况: Microsoft.AspNetCore.Routing.Matching.AmbiguousMatchException:请求匹配多个终结点 匹配项: FleetLogix.Intranet.Areas.Maps.Controllers.HomeController.Index(FleetLogix.Intranet)Asp.net mvc ASP.NET Core 3.1 MVC返回含糊不清的UsMatchException,服务器错误500,asp.net-mvc,asp.net-core,routes,Asp.net Mvc,Asp.net Core,Routes,我正在使用ASP.NET Core 3.1 MVC和区域 这个问题发生在使用IIS Express的开发中,我甚至还没有达到可以部署到实时(IIS)服务器的程度。服务器在启动过程结束时抛出错误500 例外情况: Microsoft.AspNetCore.Routing.Matching.AmbiguousMatchException:请求匹配多个终结点 匹配项: FleetLogix.Intranet.Areas.Maps.Controllers.HomeController.Index(Fle
FleetLogix.Intranet.Areas.Admin.Controllers.HomeController.Index(FleetLogix.Intranet)
FleetLogix.Intranet.Controllers.HomeController.Index(FleetLogix.Intranet) 在Microsoft.AspNetCore.Routing.Matching.DefaultEndpointSelector.ReportDumbility(CandidateState[]CandidateState)
位于Microsoft.AspNetCore.Routing.Matching.DefaultEndpointSelector.ProcessFinalCandidates(HttpContext HttpContext,CandidateState[]CandidateState)
在Microsoft.AspNetCore.Routing.Matching.DefaultEndpointSelector.Select(HttpContext HttpContext,CandidateState[]CandidateState)中选择
在Microsoft.AspNetCore.Routing.Matching.DfaMatcher.MatchAsync(HttpContext HttpContext)
在Microsoft.AspNetCore.Routing.Matching.DataSourceDependentMatcher.MatchAsync(HttpContext HttpContext)
在Microsoft.AspNetCore.Routing.EndpointRoutingMiddleware.Invoke(HttpContext HttpContext)
在Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext上下文)
位于Microsoft.AspNetCore.HttpsPolicy.httpsreditionmiddleware.Invoke(HttpContext上下文)
位于Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext上下文) 这是我的路线:
app.UseEndpoints(endpoints =>
{
endpoints.MapAreaControllerRoute(
name: "AdminArea",
areaName: "Admin",
pattern: "Admin/{controller=Home}/{action=Index}/{id?}");
endpoints.MapAreaControllerRoute(
name: "AnchorArea",
areaName: "Anchor",
pattern: "Anchor/{controller=Home}/{action=Index}/{id?}");
endpoints.MapAreaControllerRoute(
name: "DashboardArea",
areaName: "Dashboard",
pattern: "Dashboard/{controller=DriverBehaviour}/{action=Index}/{id?}");
endpoints.MapAreaControllerRoute(
name: "MapsArea",
areaName: "Maps",
pattern: "Maps/{controller=Home}/{action=Index}/{id?}");
endpoints.MapAreaControllerRoute(
name: "ReportGroupsArea",
areaName: "ReportGroups",
pattern: "ReportGroups/{controller=Home}/{action=Index}/{id?}");
endpoints.MapAreaControllerRoute(
name: "MaintenanceArea",
areaName: "Maintenance",
pattern: "Maintenance/{controller=Home}/{action=Index}/{id?}");
endpoints.MapControllers();
endpoints.MapRazorPages();
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
我没有做什么特别的事。我见过一些修复程序,它们说要为方法添加一个属性,例如:
[HttpGet("{id:int}")]
但这是对具有相同配置文件的基本索引方法的抱怨。通往它们的道路就是要区别开来
如何修复此问题?路径“/
”或“/Home/Index
”请求匹配多个端点。可以将“面积”属性添加到“分隔”。所有的测试和工作
[Area(“Admin”)]
添加到/Area/Admin/HomeController
:
[Area("Admin")]
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
[Area(“地图”)]
添加到/Area/Maps/HomeController
[Area("Maps")]
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
=>/Area/admin/HomeController/Index Actionlocalhost:44388/admin
=>/Area/maps/HomeController/Index Actionlocalhost:44388/maps
=>/HomeController/Index操作localhost:44388/
/
”或“/Home/Index
”请求匹配多个端点。可以将“面积”属性添加到“分隔”。所有的测试和工作
[Area(“Admin”)]
添加到/Area/Admin/HomeController
:
[Area("Admin")]
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
[Area(“地图”)]
添加到/Area/Maps/HomeController
[Area("Maps")]
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
=>/Area/admin/HomeController/Index Actionlocalhost:44388/admin
=>/Area/maps/HomeController/Index Actionlocalhost:44388/maps
=>/HomeController/Index操作localhost:44388/