特别说明:如果 Issue 报告为问题且开发成员回复确认问题之后但三天内都不能得到反馈,则视为无效Issue。
2.11.6
Worker Service 项目
Worker Service 项目 在vs2019 发布后运行,不能自动注册 Worker类 (services.AddHostedService()),
异常堆栈是什么?
经调试
public static IServiceCollection AddAppHostedService(this IServiceCollection services)
{
// 获取所有 BackgroundService 类型
var backgroundServiceTypes = App.EffectiveTypes.Where(u => typeof(BackgroundService).IsAssignableFrom(u));
var addHostServiceMethod = typeof(ServiceCollectionHostedServiceExtensions).GetMethods(BindingFlags.Static | BindingFlags.Public)
.Where(u => u.Name.Equals("AddHostedService") && u.IsGenericMethod && u.GetParameters().Length == 1)
.FirstOrDefault();
foreach (var type in backgroundServiceTypes)
{
addHostServiceMethod.MakeGenericMethod(type).Invoke(null, new object[] { services });
}
return services;
}
backgroundServiceTypes 返回为空;
期待的结果是?
问题确认,感谢反馈和给出解决方案:
// 读取项目程序集或 Furion 官方发布的包,或手动添加引用的dll,或配置特定的包前缀
var scanAssemblies = dependencyContext.RuntimeLibraries
.Where(u =>
(u.Type == "project" && !excludeAssemblyNames.Any(j => u.Name.EndsWith(j))) ||
(u.Type == "package" && (u.Name.StartsWith(nameof(Furion)) || supportPackageNamePrefixs.Any(p => u.Name.StartsWith(p)))) ||
(settings.EnabledReferenceAssemblyScan == true && u.Type == "reference")) // 判断是否启用引用程序集扫描
.Select(u => AssemblyLoadContext.Default.LoadFromAssemblyName(new AssemblyName(u.Name)));
IEnumerable<Assembly> externalAssemblies = Array.Empty<Assembly>();
将过去的 .CompileLibraries
改为 .RuntimeLibraries
即可。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
今天发布
登录 后才可以发表评论