小编lon*_*nix的帖子

在vscode调试控制台中禁用符号加载的详细日志记录

当运行我的Web应用程序(在vscode中)时,调试控制台中填充了以下行:

加载了'/foo/bar/dotnet/shared/Microsoft.NETCore.App/2.2.4/System.Private.CoreLib.dll'。跳过的加载符号。模块已优化,调试器选项“ Just My Code”已启用。

线程123以代码0(0x0)退出。

我认为这与appsettings.json文件中的日志过滤有关,但是这些不属于我可以禁用的任何类别。

这很烦人-如何禁用它?

.net-core visual-studio-code asp.net-core asp.net-core-2.2

4
推荐指数
3
解决办法
420
查看次数

docker compose 中的秘密

我的环境是 ubuntu 18.04 VPS。

我无法获得基于文件的机密以在 docker 容器中使用 mariadb。

  1. 创建docker-compose.yml
version: '3.7'
services:
  db:
    image: mariadb:10.4.8-bionic
    environment:
      - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/password_root
      - MYSQL_PASSWORD_FILE=/run/secrets/password_user
      - MYSQL_DATABASE=database
      - MYSQL_USER=admin
    secrets:
      - password_root
      - password_user
secrets:
  password_root:
    file: .secret_password_root
  password_user:
    file: .secret_password_user
Run Code Online (Sandbox Code Playgroud)
  1. 创建秘密:
echo -n secret > .secret_password_root
echo -n secret > .secret_password_user
chown root:root .secret_password*
chmod 400 .secret_password*
Run Code Online (Sandbox Code Playgroud)

(请注意,我可以设置 444,但这会暴露主机上的机密文件,这是一个非常糟糕的主意。)

  1. 跑:
docker-compose up
Run Code Online (Sandbox Code Playgroud)

错误:

db_1 | /usr/local/bin/docker-entrypoint.sh:第 37 行:/run/secrets/password_root:权限被拒绝

根据文档,机密文件应该挂载为0444,但这显然不会发生。

linux docker docker-compose

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

将数组从 .env 传递到 docker-compose.yml 到 Dockerfile 到 bash 脚本

我创建了一个自定义 Docker 容器,它调用启动脚本。该脚本需要一些数据,这些数据存储在我的.env文件中。

所有文件所需的所有变量都存储在 中.env,这就是我想要保存它的地方。我可以通过这种方式传递变量而不会出现错误...这只是我无法正确传递的数组。

.env:

FOO=1                # blah
BAR='bar'            # this does blah
MYARRAY=(
  hello              # blah
  world              # blah
)
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml:

mycontainer:
  env_file: .env
  build:
    context: .
    args:                           # pass variables into dockerfile
      FOO: ${FOO}
      MYARRAY: ${MYARRAY}
Run Code Online (Sandbox Code Playgroud)

Dockerfile:

FROM some_app
ARG FOO
ARG MYARRAY
ENV \
  FOO=$FOO \
  MYARRAY=$MYARRAY                # pass variables into script
CMD [ "myscript.sh" ]
Run Code Online (Sandbox Code Playgroud)

myscript.sh:

FOO=1                # blah
BAR='bar'            # this does blah
MYARRAY=(
  hello …
Run Code Online (Sandbox Code Playgroud)

linux bash yaml docker docker-compose

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

重命名 ASP.NET Core Razor Pages 中的页面/共享目录

我正在使用 ASP.NET Core 5 Razor 页面。通用模板进去了Pages/Shared,但我需要将其重命名为Pages/Foo.

如何指示运行时在 中查找文件Pages/Foo

我认为有可能Startup.ConfigureServices()

services.AddRazorPages(options => {
  options.Conventions.???      // what goes here?
});
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core razor-pages asp.net-core-5.0

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

使用 FluentAssertions 断言异步异常和 paramName

我在用着FluentAssertions

对于同步测试,我可以这样写:

action.Should().Throw<ArgumentNullException>().And.ParamName.Should().Be("foo");
Run Code Online (Sandbox Code Playgroud)

对于异步测试,我这样做:

await action.Should().ThrowAsync<ArgumentNullException>();
Run Code Online (Sandbox Code Playgroud)

是否有一种方便的方法来断言ParamName,或者我必须通过包装在 try-catch 中手动完成?

c# testing fluent-assertions

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

EF Core 拥有的实体影子 PK 导致 SQLite 违反空约束

我有一个Comment拥有的实体类型:

public class Comment {    // owned entity type
  public Comment(string text) { Text = text; }
  public string Text { get; private set; }
}

public class Post {
  public Post(string content) { Content = content; }
  public long Id { get; private set; }
  public string Content { get; private set; }
  public ICollection<Comment> Comments { get; private set; } = new HashSet<Comment>();
}
Run Code Online (Sandbox Code Playgroud)

AndPost的配置包括:

builder.OwnsMany(x => x.Comments, x => {
  x.Property(y => y.Text).IsRequired(); …
Run Code Online (Sandbox Code Playgroud)

c# sqlite entity-framework-core ef-core-5.0

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

Blazor 模板的 csproj 中的 SupportedPlatform

blazor“独立”模板将其包含在项目的.csproj

<ItemGroup>
  <SupportedPlatform Include="browser" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

它是什么?它记录在某处吗?

c# asp.net-core blazor blazor-webassembly

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

certbot 的试运行和暂存选项之间的差异

每当我使用 certbot 进行测试时,我都担心会超出速率限制,从而导致我的帐户受到限制。所以我同时使用--dry-run--staging选项。

这在许多其他问题和教程中都得到了体现——而且由于它有效,我从不担心它。

但我确信它们之间有区别......它是什么?

lets-encrypt certbot

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

在文件范围的命名空间之前/之后使用

C# 10 为我们提供了文件范围的命名空间。所以这:

using Foo;
using Bar;
namespace Baz {
  // ...
}
Run Code Online (Sandbox Code Playgroud)

可以写成:

using Foo;
using Bar;
namespace Baz;
// ...
Run Code Online (Sandbox Code Playgroud)

命名空间之前和之后的使用之间存在差异。编译器是否会自动将其重新排序为:

namespace Baz;
using Foo;
using Bar;
// ...
Run Code Online (Sandbox Code Playgroud)

dotnet build如果没有,是否有msbuildCLI 开关、代码分析器或其他选项来启用此类功能?

c# roslyn c#-10.0

4
推荐指数
2
解决办法
602
查看次数

为什么在 Blazor wasm 中使用await Task.Delay(1)?

许多 SO 答案用于await Task.Delay(1)解决 Blazor (wasm) 中的各种异步渲染问题。我什至在我自己的代码中发现了许多地方这样做“使它起作用”。

然而,它总是按事实陈述,没有彻底的解释,而且我在文档中也找不到这种技术。

一些问题:

  • 为什么使用await Task.Delay(1)- 我什么时候使用这种技术,用例是什么?
  • 文档没有讨论这个(我可以找到);是因为它是黑客攻击,还是处理用例的合法方法?
  • Task.Delay(1)和之间有什么区别吗Task.Yield()

c# async-await asp.net-core blazor blazor-webassembly

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