Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http 为什么ASP.NET核心路由会导致Azure上的HEAD请求出现异常?_Http_Asp.net Core_Azure Web App Service_Query String_Http Head - Fatal编程技术网

Http 为什么ASP.NET核心路由会导致Azure上的HEAD请求出现异常?

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

我在我的网站上的许多路径的HEAD请求的Application Insights中看到了许多相同的例外:

System.ArgumentException:非空查询必须包含前导“?”。(参数“值”)

该网站正在Azure应用程序服务中运行。当我在本地调试并使用HEAD请求点击这些URL时,它返回一个405未实现,但没有异常。也许是因为local使用的是Kestrel,Azure使用的是IIS

我指定的路线如下:

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中只有默认路由,并且按照建议将其余路由移到属性路由。非常感谢。