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

本地运行Azure Functions出现多类异常,寻求解决办法

本地运行Azure Functions报错的解决办法

遇到的错误

  • Azure.Identity.CredentialUnavailableException
  • Azure.RequestFailedException: A socket operation was attempted to an unreachable network. (169.254.169.254:80)(底层关联System.Net.Http.HttpRequestException)
  • Could not load type 'Microsoft.Azure.WebJobs.ParameterBindingData'

已尝试的无效操作

  • 注销并以管理员身份运行Visual Studio
  • 使用Azurite模拟Azure存储服务
  • 重启本地机器
  • 更新Visual Studio至最新版本
  • 确认Azure门户权限与正常运行的团队成员一致

针对性解决步骤

1. 处理169.254.169.254网络不可达问题

这个地址是云实例的元数据服务地址,本地开发完全不需要访问它。可以通过以下方式阻断函数的访问尝试:

  • 给项目添加环境变量:AZURE_IDENTITY_DISABLE_METADATA_SERVICE=true
    操作路径:右键Azure Functions项目 → 属性 → 调试 → 环境变量 → 新增上述键值对
  • 检查本地代理设置,临时关闭代理或者调整规则,避免强制路由到该地址

2. 解决CredentialUnavailableException

本地运行时优先用本地凭据,别让程序去尝试云身份验证:

  • 在local.settings.json里配置Azurite的存储连接字符串:
    {
      "IsEncrypted": false,
      "Values": {
        "AzureWebJobsStorage": "UseDevelopmentStorage=true",
        "FUNCTIONS_WORKER_RUNTIME": "dotnet" // 根据你的实际运行时调整,比如node/python等
      }
    }
    
  • 如果用Visual Studio登录了Azure账户,试试重新选择开发账户,或者在Azure Service Authentication里重置账户凭据

3. 修复类型加载错误Could not load type Microsoft.Azure.WebJobs.ParameterBindingData

这个问题基本是NuGet包版本不匹配导致的:

  • 卸载并重新安装Microsoft.Azure.WebJobs及相关扩展包,确保所有WebJobs系列包版本完全一致
  • 清理NuGet缓存:打开Visual Studio → 工具 → NuGet包管理器 → 管理解决方案的NuGet包 → 设置 → 清除所有缓存
  • 检查项目的PackageReference,删掉任何冲突的旧版本包,比如同时引用Microsoft.Azure.WebJobs和Microsoft.Azure.WebJobs.Extensions时,版本必须对齐

4. 额外排查步骤

  • 删除项目的bin和obj文件夹,重新生成整个解决方案
  • 检查本地Azure Functions Core Tools版本,卸载旧版本,只保留和当前Visual Studio兼容的最新版
  • 创建一个全新的空Azure Functions项目测试运行,排查是否是现有项目的配置问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 12:17:49