Http 为什么ASP.NET核心路由会导致Azure上的HEAD请求出现异常?
我在我的网站上的许多路径的HEAD请求的Application Insights中看到了许多相同的例外: System.ArgumentException:非空查询必须包含前导“?”。(参数“值”) 该网站正在Azure应用程序服务中运行。当我在本地调试并使用HEAD请求点击这些URL时,它返回一个405未实现,但没有异常。也许是因为local使用的是Kestrel,Azure使用的是IIS 我指定的路线如下:Http 为什么ASP.NET核心路由会导致Azure上的HEAD请求出现异常?,http,asp.net-core,azure-web-app-service,query-string,http-head,Http,Asp.net Core,Azure Web App Service,Query String,Http Head,我在我的网站上的许多路径的HEAD请求的Application Insights中看到了许多相同的例外: System.ArgumentException:非空查询必须包含前导“?”。(参数“值”) 该网站正在Azure应用程序服务中运行。当我在本地调试并使用HEAD请求点击这些URL时,它返回一个405未实现,但没有异常。也许是因为local使用的是Kestrel,Azure使用的是IIS 我指定的路线如下: endpoints.MapControllerRoute( name: &q
endpoints.MapControllerRoute(
name: "home-test",
pattern: "home/test",
defaults: new { controller = "Home", action = "Test" });
endpoints.MapControllerRoute(
name: "home-test-id",
pattern: "home/test/{id}",
defaults: new { controller = "Home", action = "Test" });
[HttpGet]
public async Task<IActionResult> Test(string id)
我的控制器操作如下所示:
endpoints.MapControllerRoute(
name: "home-test",
pattern: "home/test",
defaults: new { controller = "Home", action = "Test" });
endpoints.MapControllerRoute(
name: "home-test-id",
pattern: "home/test/{id}",
defaults: new { controller = "Home", action = "Test" });
[HttpGet]
public async Task<IActionResult> Test(string id)
[HttpGet]
公共异步任务测试(字符串id)
解决这些异常的最佳方法是什么?路由规则从上到下依次执行。在我的测试之后,我认为您的默认路由部分不应该被修改 代码已被修改,因此应能正常运行 另外,我建议你使用
你的问题解决了吗?抱歉耽搁了。是的,这确实解决了我看到的问题。我现在在UseEndpoints中只有默认路由,并且按照建议将其余路由移到属性路由。非常感谢。