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

ASP.NET Core Web API集成Orleans启动silo提示无生成代码报错如何解决

Microsoft Orleans 代码生成异常解决方案

针对启动Silo时抛出的代码生成异常:

添加到ApplicationPartManager的程序集中均不包含生成的代码,请确保已为Grain接口和实现类所在的程序集执行代码生成。

可按以下步骤排查修复:

  • 替换过时代码生成包
    Orleans 3.0及以上版本已废弃Microsoft.Orleans.OrleansCodeGenerator.Build包,需改用Microsoft.Orleans.CodeGenerator.MSBuild。请确保该包版本与项目内所有其他Orleans依赖(如Microsoft.Orleans.Server、Microsoft.Orleans.EventSourcing)版本完全一致,且在Grain接口、Grain实现、Silo三个项目中均安装该包。
  • 补全ApplicationParts配置
    当前配置仅添加Grain程序集本身,未关联其依赖项与生成的代码,需追加WithReferences()扩展方法:
    .ConfigureApplicationParts(parts =>
    {
       parts.AddApplicationPart(typeof(PaymentGrain).Assembly).WithReferences();
    });
    
  • 检查代码生成开关
    打开Grain相关项目的.csproj文件,确认不存在<OrleansCodeGenEnabled>false</OrleansCodeGenEnabled>配置,若有该配置项,删除或将值修改为true。
  • 清理缓存重新构建
    删除解决方案下所有项目的bin、obj文件夹,执行完整的重新构建,检查构建输出日志,确认存在Orleans代码生成执行记录,无代码生成相关报错。
  • 验证EventSourcing依赖
    由于使用了JournaledGrain与日志一致性存储,需确认已安装对应版本的Microsoft.Orleans.EventSourcing包,缺失该包会导致Grain相关代码生成不完整。

控制台输出的QueueWorkItem was called on a non-null context报错为代码生成异常的衍生问题,完成上述修复后会自动消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:54:04