You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 8隔离模式Azure Functions根路由双斜杠异常及解决

.NET 8 Azure Functions隔离模式根路径HTTP触发器问题解决

问题场景

之前基于.NET 6进程内模式的Azure Functions项目运行正常,升级到.NET 8切换为隔离工作者模式后,无法正常访问项目根路径。此前通过以下配置实现根路径静态页面:

  • 在local.settings.json中设置"AzureWebJobsDisableHomepage": true
  • 在host.json中配置:
    {
      "version": "2.0",
      "extensions": {
        "http": {
          "routePrefix": ""
        }
      }
    }
    

切换到隔离模式后,使用如下根路径触发器代码时抛出异常:

public class StaticWebFunctions
{
    [Function(nameof(WebRoot))]
    public IActionResult WebRoot([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "/")] HttpRequest request)
    {
        return new ContentResult() { Content = "Testing root functionality, pun intended" };
    }
}

异常信息:

Microsoft.AspNetCore.Routing.Patterns.RoutePatternException: 路由模板分隔符'/'不能连续出现,必须用参数或文字值分隔。

尝试移除路由中的'/'后,访问时仅返回HTTP 204,函数不执行;将路由改为~/则导致无限循环,中断请求会抛出TaskCancelledException。

解决方法

根据微软迁移文档,问题根源在于隔离模式下HTTP触发器的配置方式:将Program.cs中原本调用的.ConfigureFunctionsWebApplication()替换为.ConfigureFunctionsWorkerDefaults(),即可消除双斜杠限制,根路径路由能正常工作。


内容的提问来源于stack exchange,提问作者Perry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 15:00:04