yiyun

Results 56 comments of yiyun

发现 是 `GitHub Actions` 没有配置 `npm install` 导致, 奇怪的是,没有报错,看日志,运行正常,没有在 `GitHub Action` 中安装 `Node.js`, 但是 `dotnet build` 还是调用到了 `npm install` ,而且,生成了 `node_modules`, 目测是顺序不对,`GitHub Actions` 中,`dotnet build` 时,还没有进行 `npm install`,但是明明本地就能正常(先 `npm install`)

目前已经通过在 `GitHub Actions` 中显式指定 `npm install` ,完成

猜测,`ApplicationBuilder` 还是需要 `IServiceProvider` ,可能需要什么 Service, 但奇怪的是,之前做过的实验, `IPluginFinder` 却可以正常从 `Middleware` 的 `InvokeAsync` 方法上,通过依赖注入获取

```C# namespace AspNetCore3_1 { public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseSetting(WebHostDefaults.HostingStartupAssembliesKey, "PluginCore"); webBuilder.UseStartup(); });...

源代码, `Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager` 注册处 ```C# var partManager = new ApplicationPartManager(); partManager.ApplicationParts.Add(CompiledRazorAssemblyApplicationPartFactory.GetDefaultApplicationParts(viewsAssembly).Single()); var builder = services .AddSingleton() .AddSingleton() .AddSingleton(listener) .AddSingleton(listener) .AddSingleton() .AddSingleton(partManager) .AddScoped() .AddMvc(); ``` - https://github.com/dotnet/aspnetcore/search?p=5&q=ApplicationPartManager - https://github.com/dotnet/aspnetcore/blob/8b30d862de6c9146f466061d51aa3f1414ee2337/src/Mvc/perf/Microbenchmarks/Microsoft.AspNetCore.Mvc/RuntimePerformanceBenchmarkBase.cs#L144

外部先的问题就在于,有些service获取不到,因为是在主程序中注册的,你可能会说在外部注册,但有些必须单例,我试过了,如ApplicationPartManager,会变成两个 > 实际是先外部的注册服务 ( `ConfigureServices(IServiceCollection services)` ),再内部注册服务,再外部注册中间件 ( `Configure(IApplicationBuilder app)` ),再内部注册中间件 我需要在外部获取到主程序的服务,so,因此必须外部后

承载启动程序集 参考 - [Furion - HostBuilderExtensions](https://github.com/MonkSoul/Furion/blob/d35e21db46be7872240347fcad1477bfd6f88e46/framework/Furion/App/Extensions/HostBuilderExtensions.cs) - [Furion - HostingStartup](https://github.com/MonkSoul/Furion/blob/d35e21db46be7872240347fcad1477bfd6f88e46/framework/Furion/App/Startups/HostingStartup.cs)

> 排除 knt.Core 问题 ![image](https://user-images.githubusercontent.com/16939388/170810125-e94cedb8-3956-415f-83cb-0863846c47dd.png)

> 本地 Visual Studio QQBotHub ![image](https://user-images.githubusercontent.com/16939388/170810210-3e2948d4-655a-4fca-9528-77c8f65a35d1.png) > 等了会,目测一直稳在 `84MB` 了 ![image](https://user-images.githubusercontent.com/16939388/170810307-1c6ffa01-de59-49d4-a357-c0c0144f1e86.png)

经过长时间,`Portainer` 显示 `qqbothub` 逐渐稳定在 `80+MB` , 奇怪 , `Railway` 怎么会这么高占用, **有时间再测试一下插件**