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

.NET 7升级后Azure Http Trigger无响应问题求助

问题排查:Azure函数升级至.NET 7后HTTP请求无响应

问题概述

将原本基于.NET 6的Azure函数升级到.NET 7,已完成官方文档中要求的所有重大变更修复,运行时系统能识别到端点可用,但调用该端点时请求一直处于挂起状态,无任何响应。

相关配置与代码

.csproj配置

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
      <TargetFramework>net7.0</TargetFramework>
      <AzureFunctionsVersion>v4</AzureFunctionsVersion>
      <OutputType>Exe</OutputType>
      <ImplicitUsings>enable</ImplicitUsings>
      <Nullable>enable</Nullable>
  </PropertyGroup>
  <ItemGroup>
      <PackageReference Include="Azure.Identity" Version="1.8.2" />
      <PackageReference Include="Microsoft.Azure.Functions.Worker" Version="1.10.1" />
      <PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http" Version="3.0.13" />
      <PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.7.0" />
      <PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="7.0.0" />
      <PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="7.0.3" />
      <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="7.0.0" />
      <PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="7.0.0" />
      <PackageReference Include="Microsoft.Graph" Version="5.0.0" />
  </ItemGroup>
    <ItemGroup>
        <None Update="host.json">
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>
        <None Update="local.settings.json">
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
            <CopyToPublishDirectory>Never</CopyToPublishDirectory>
        </None>
    </ItemGroup>
    <ItemGroup>
        <Using Include="System.Threading.ExecutionContext" Alias="ExecutionContext" />
    </ItemGroup>
</Project>

函数方法定义

[Function("Function1")]
public async Task Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req)

排查与修复建议

  • 补全响应返回逻辑:隔离进程模型下,HTTP触发函数必须创建并返回HttpResponseData对象,否则请求会因未收到响应持续挂起。修改方法示例:
    [Function("Function1")]
    public async Task<HttpResponseData> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req)
    {
        var response = req.CreateResponse(System.Net.HttpStatusCode.OK);
        await response.WriteStringAsync("请求已处理完成");
        return response;
    }
    
  • 升级兼容包版本:当前使用的Worker、Sdk及HTTP扩展包版本较旧,存在.NET 7适配风险。建议升级到最新兼容版本(如Worker 1.19.0+、Sdk 1.14.0+、Http扩展3.1.0+),确保依赖版本匹配。
  • 检查host.json配置:确认host.json中启用隔离进程必要配置,示例:
    {
        "version": "2.0",
        "extensions": {
            "http": {
                "routePrefix": ""
            }
        }
    }
    
  • 排查异步代码问题:检查函数内部是否存在未正确等待的异步调用,或使用.Result、.Wait()等阻塞线程的同步操作,这类操作易导致死锁引发请求挂起。
  • 查看运行日志:启动函数时观察控制台输出,调用端点时检查是否有异常日志,确认函数是否正常执行到业务逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 22:02:11