小编lon*_*nix的帖子

所有猫鼬事件是什么,它们在哪里记录?

我可以用猫鼬处理各种事件,例如

mongoose.connection.on("connecting", () => this.onConnecting());
Run Code Online (Sandbox Code Playgroud)

我遇到的一些:

  • 连接
  • 错误
  • 连接的
  • 打开
  • 重新连接
  • 断开连接

我找不到这些记录在哪里。我想也许它们不是 mogoose 的一部分,而是 mongodb 本身的一部分,但我在 mongo 站点上也找不到它们。

我在哪里可以找到记录在案的这些事件(和其他事件)?

mongoose mongodb

4
推荐指数
1
解决办法
2764
查看次数

TypeScript 导出和重命名默认值

interface Foo {
  hello(): string;
}

export default Foo;
Run Code Online (Sandbox Code Playgroud)

假设我想重命名Bar. 然后我必须这样做:

export {Foo as Bar};    // notice there is no `default`
Run Code Online (Sandbox Code Playgroud)

如何同时重命名和使用default

typescript

4
推荐指数
1
解决办法
1875
查看次数

测试期间的 EF Core 内部缓存和许多 DbContext 类型

我有很多个测试班,每个班有几十个测试。我想隔离测试,所以MyDbContext我不使用大型上下文,而是使用MyDbContextToTestFoo, MyDbContextToTestBar,MyDbContextToTestBaz等。所以我有很多子DbContext类。

在我使用 EF Core 5 进行的单元测试中,我遇到了ManyServiceProvidersCreatedWarning. 它们单独工作,但许多在作为组运行时失败:

System.InvalidOperationException:警告“Microsoft.EntityFrameworkCore.Infrastruct.ManyServiceProvidersCreatedWarning”生成错误:已创建超过二十个“IServiceProvider”实例供实体框架内部使用。这通常是由于将新的单例服务实例注入每个 DbContext 实例而引起的。例如,调用“UseLoggerFactory”每次都会传入一个新实例 - 有关更多详细信息,请参阅https://go.microsoft.com/fwlink/?linkid=869049。这可能会导致性能问题,请考虑检查对“DbContextOptionsBuilder”的调用,这可能需要构建新的服务提供程序。通过将事件 ID“CoreEventId.ManyServiceProvidersCreatedWarning”传递给“DbContext.OnConfiguring”或“AddDbContext”中的“ConfigureWarnings”方法,可以抑制或记录此异常。

正如该错误所暗示的那样,我没有做任何奇怪的事情DbContextOptionsBuilder。我不知道如何诊断“......这可能需要建立新的服务提供商”。在大多数测试中,我通常创建一个上下文:new DbContextOptionsBuilder<TContext>().UseSqlite("DataSource=:memory:")其中TContext是我上面提到的上下文类型之一。

我已经阅读了存储库上的许多问题,并发现 EF 对各种事物进行了大量缓存,但关于该主题的文档不存在。建议是“找到导致这么多服务提供商被缓存的原因”,但我不知道要寻找什么。

有两种解决方法

  • builder.EnableServiceProviderCaching(false)这显然对性能非常不利
  • builder.ConfigureWarnings(x => x.Ignore(CoreEventId.ManyServiceProvidersCreatedWarning))忽略了这个问题

我假设“服务提供者”是指 EF 的内部 IoC 容器。

我想知道的是:我有很多DbContext类型(因此IModel类型)这一事实是否会影响服务提供者缓存?两者有关联吗?(我知道 EFIModel为每个缓存一个DbContext,它是否也为每个缓存一个服务提供者?)

c# integration-testing unit-testing entity-framework-core ef-core-5.0

4
推荐指数
1
解决办法
2759
查看次数

最新 .NET、ASP.NET Core 和 EF Core 的升级清单

我正在将 .NET、ASP.NET Core 和 EF Core 升级到最新版本。

是否有我可以遵循的全面迁移“清单”?

c# entity-framework-core .net-core asp.net-core blazor

3
推荐指数
1
解决办法
1284
查看次数

使用 dart sass CLI 导入波浪号

我正在升级一个旧系统,其中有很多:

@import "~bootstrap/scss/mixins";
Run Code Online (Sandbox Code Playgroud)

使用 dart-sass CLI 编译时会失败。

我曾经使用 node-sass 以及类似node-sass-tilde-importer和的包node-sass-package-importer来帮助处理该语法。他们似乎不适合 dart-sass。

鉴于我现在使用的是dart sass CLI,我该如何处理这个问题?

sass node-sass dart-sass

3
推荐指数
1
解决办法
1719
查看次数

捕获所有无效子域的 nginx 服务器块

我在一台主机上有多个域,nginx 管理所有这些域。每个域都有自己的 SSL 证书(我使用“webroot”插件从 certbot 获取该证书)。

我在每个配置文件的末尾都有一个服务器块,作为“包罗万象”(来自此处此处),为无效子域返回 404。

默认 nginx 配置文件default.conf

# ...other config...
include /path/to/domain1.conf;
include /path/to/domain2.conf;
# ...other config...
Run Code Online (Sandbox Code Playgroud)

domain1.conf

# redirect http to https
server {
  listen      80;
  listen      [::]:80;
  server_name domain1.com www.domain1.com
  return      301 https://$host$request_uri;
}

# redirect naked to www
server {
  listen      443 ssl http2;
  listen      [::]:443 ssl http2;
  server_name domain1.com
  include     path/to/ssl_config.conf
  return      301 https://www.$host$request_uri;
}

# serve subdomain www
server {
  listen      443 ssl http2; …
Run Code Online (Sandbox Code Playgroud)

nginx nginx-config

3
推荐指数
1
解决办法
2062
查看次数

MudBlazor 的网格和容器之间的区别

我是 MudBlazor 的新手。

在引导程序中,如果我想调整多个断点的内容大小,我会使用网格(.container然后是.row.col-x)。

MudBlazor 有一个MudGrid,但它也有一个MudContainer元素。

在很多示例代码中,我注意到人们使用它而不是网格。因此,在引导程序中,我必须摆弄xsmd等,使其在所有断点上看起来都很好,但在 mudblazor 中,人们似乎只使用MudContainerwith MaxWidth

文档对此并不清楚。你什么时候会使用MudGrid,什么时候会使用MudContainer?它们相等吗?为什么需要容器?其中一个比另一个更容易使用吗?

blazor mudblazor

3
推荐指数
1
解决办法
3651
查看次数

什么是 blazor 根组件?

blazor 模板有这样的:

builder.RootComponents.Add<App>("#app");
builder.RootComponents.Add<HeadOutlet>("head::after");
Run Code Online (Sandbox Code Playgroud)

我知道什么App是 和HeadOutlet是什么(它们在文档中都有介绍)。

一般都有哪些RootComponents

我也可以添加自己的组件吗?(这些可能是什么类型的组件?)

c# asp.net-core blazor blazor-webassembly

3
推荐指数
1
解决办法
1894
查看次数

保证为所有主机收集 Ansible 事实

如果我从头到尾运行一本剧本,它会收集事实,然后运行角色。但通常我不会这样做:我只是直接运行角色(通过他们的标签)。所以事实没有被收集,所以我得到了错误。为了解决这个问题,我必须记住运行一个特殊的“设置”任务:

$ ansible-playbook playbook.yml -t setup,my-role
Run Code Online (Sandbox Code Playgroud)

我经常忘记这样做,出现错误并浪费时间。因此,我希望每个角色都从一个自动防止故障的任务开始,该任务会在必要时自动收集事实:

$ ansible-playbook playbook.yml -t setup,my-role
Run Code Online (Sandbox Code Playgroud)

这样可行。但在其他问题中,我读到并非所有的事实都是在所有主机上收集的 - 显然存在差异。

我选择了ansible_os_family,但我担心它不“通用”。

是否有任何事实可以100% 保证在所有主机上收集?(对于这个用例,我不需要详尽的列表,只需几个,甚至一个。)

ansible ansible-facts

3
推荐指数
1
解决办法
693
查看次数

什么情况下Assembly.GetName().Name可以为null?

这被定义为可空 ( string?):

typeof(Foo).GetTypeInfo().Assembly.GetName().Name
Run Code Online (Sandbox Code Playgroud)

文档说:

获取或设置程序集的简单名称。这通常(但不一定)是程序集清单文件的文件名减去其扩展名。

什么情况下该值可以为空?

.net c#

2
推荐指数
1
解决办法
355
查看次数