对于我网站上许多路径的 HEAD 请求,我在 Application Insights 中看到了很多相同的异常:
System.ArgumentException:前导“?” 必须包含非空查询。(参数“值”)
该网站在 Azure 应用服务中运行。当我在本地调试并使用 HEAD 请求访问相同的 URL 时,它返回 405 Not Implemented,但没有异常。也许是因为本地使用 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)
解决这些异常的最佳方法是什么?