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

调用config.MapODataServiceRoute报Microsoft.OData.Core加载错误

问题原因

该异常是OData生态包版本不匹配导致的运行时加载错误:项目中安装的Microsoft.AspNet.OData包明确依赖版本为7.11.0.0的Microsoft.OData.Core及配套类库,但实际运行时加载到的程序集版本和依赖要求不符,多数情况是单独安装/升级部分OData包、绑定重定向失效、旧编译文件残留导致的。

修复步骤

按顺序执行以下操作即可解决:

  • 统一所有OData关联包版本
    打开Visual Studio的NuGet包管理器控制台,依次执行以下命令,强制将所有OData相关依赖更新到匹配版本,避免不同包出现版本差:
    Update-Package Microsoft.OData.Core -Version 7.11.0
    Update-Package Microsoft.OData.Edm -Version 7.11.0
    Update-Package Microsoft.Spatial -Version 7.11.0
    Update-Package Microsoft.AspNet.OData -Reinstall
    
    执行完成后,展开项目的引用列表,逐一确认上述四个程序集的引用版本均为7.11.0,不存在其他旧版本的同程序集引用。
  • 修正web.config程序集绑定重定向
    打开项目根目录下的web.config文件,定位到<runtime>节点下的<assemblyBinding>区块,删除所有和Microsoft.OData.Core、Microsoft.OData.Edm、Microsoft.Spatial相关的旧绑定重定向条目,添加以下正确配置:
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.OData.Core" publicKeyToken="31bf3856ad364e35" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-7.11.0.0" newVersion="7.11.0.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.OData.Edm" publicKeyToken="31bf3856ad364e35" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-7.11.0.0" newVersion="7.11.0.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.Spatial" publicKeyToken="31bf3856ad364e35" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-7.11.0.0" newVersion="7.11.0.0" />
    </dependentAssembly>
    
  • 清理编译残留
    关闭Visual Studio,进入项目文件夹,手动删除bin、obj两个目录下的所有文件,避免旧版本dll残留被加载。重新打开项目后执行「重新生成解决方案」。
  • 跨项目版本检查
    如果解决方案包含多个类库项目,需要逐一检查所有项目引用的OData相关包版本,确保整个解决方案内的OData包版本完全统一,避免主项目加载到其他类库引用的旧版本OData程序集。
验证

重新启动服务后,访问配置的OData端点,能正常返回EDM模型或实体数据即代表修复完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 11:00:58