小编Moh*_*din的帖子

为什么我在 Docker 容器中的非卷数据即使在重新启动容器后仍然存在?

在一些地方,当我阅读 Docker 容器时,我发现有些人说他们在重新启动容器时丢失了他们的数据(保存在容器内而不是卷数据的一部分)。

我尝试创建一个简单的 Ubuntu 容器,如下所示:docker run -it ubuntu /bin/bash,并在容器内创建了一些文件,然后重新启动它,但我的数据仍然存在。为什么会这样?为什么我的数据还在那里?这是较新版本的 Docker 中的新内容还是我对某些内容有误解?

docker docker-container

6
推荐指数
2
解决办法
1095
查看次数

使用TI代码编写器工作室(适用于ARM)在C代码中进行内联汇编

有人可以告诉我,如何使用TI代码编写器工作室(针对ARM)在C代码中执行内联汇编代码?

我搜索并尝试但没有任何效果.

例如,当我尝试这个非常简单的代码时:

asm("push r0\n");
Run Code Online (Sandbox Code Playgroud)

或这个

__asm("push r0\n");
Run Code Online (Sandbox Code Playgroud)

我总是得到:

[E0002]非法助记符指定推r0

1装配错误,无装配警告

我读到的东西说我以前的代码是GCC风格,TI编译器不接受它!那么我该如何执行自己的内联汇编代码呢?

assembly arm code-composer

5
推荐指数
1
解决办法
4302
查看次数

除了相应的`navigation property`之外,我还应该定义`foreign key Id`属性吗?

我在Microsoft教程中找到了这些实体:

public class Enrollment
{
    public int Id{ get; set; }

    public int StudentId { get; set; }
    public Student Student { get; set; }
}

public class Student
{
    public int Id { get; set; }

    public ICollection<Enrollment> Enrollments { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我真的需要定义StudentId属性吗?

在不同类型的关系中,案件会有何不同?例如one-oneone-many

更新:

在这个链接http://www.learnentityframeworkcore.com/relationships中我们可以看到,在One-Many和Many-Many中,他们没有定义Id外键属性,但是在One-One中,他们做到了.这是为什么?

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

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

反向代理后面的 ASP.Net Core 不使用 `X-Forwareded-For`

我试图在我的ASP.Net Core 2.1 MVC 控制器(在 .Net Docker 容器中运行)中获取请求的远程 IP 地址(即发送请求的客户端的 IP )。考虑到我的 ASP.Net Core 应用程序位于 NGINX 反向代理之后(在 NGINX Docker 容器中运行)。

众所周知,当反向代理将请求重定向到我的 .Net Core 应用程序时,它会更改我请求的源 IP(TCP/IP 层),因此,我将 NGINX 配置为将X-Forwareded-For原始 IP添加到请求中。从 NGINX 容器重定向到 .Net 容器的请求X-Forwareded-For在标头中有:

在此处输入图片说明

当然,我配置了 .Net Core 以了解这一点:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, IServiceProvider serviceProvider)
{
    // Rewrite the header when being redirected (this is required because we are behind reverse proxy)
    var forwardedHeadersOptions = new ForwardedHeadersOptions
    {
        ForwardedHeaders …
Run Code Online (Sandbox Code Playgroud)

c# .net-core asp.net-core

5
推荐指数
2
解决办法
3748
查看次数

为什么 awating 之后的代码在不同的线程上运行(即使设置了 SynchronizationContext)?

我正在执行以下代码片段来测试如何更改线程,在该线程上将await调用 ing 之后的代码。根据@Stephen Cleary 在这个答案中,为了能够await在同一线程(上下文)上继续执行异步代码,我需要设置SynchronizationContext,并且我这样做了,但是,我的代码在不同的线程中继续运行。

static void Main(string[] args)
{
    var mainSyncContex = new SynchronizationContext();
    SynchronizationContext.SetSynchronizationContext(mainSyncContex);

    Console.WriteLine($"Hello World! ThreadId: {Thread.CurrentThread.ManagedThreadId}"); // <-- In thread 1

    try
    {
        Task.Run(async () =>
        {
            SynchronizationContext.SetSynchronizationContext(mainSyncContex);

            Console.WriteLine($"Is there Sync Contex?: {SynchronizationContext.Current != null}");

            Console.WriteLine($"Before delay. ThreadId: {Thread.CurrentThread.ManagedThreadId}"); // <-- In thread 3
            await Task.Delay(1000).ConfigureAwait(true);
            Console.WriteLine($"After delay. ThreadId: {Thread.CurrentThread.ManagedThreadId}"); // <-- In thread 4
            throw new Exception();
        });
    }
    catch (Exception e)
    {
        Console.WriteLine($"Exception: {e.Message} Catch. ThreadId: …
Run Code Online (Sandbox Code Playgroud)

.net c# async-await

5
推荐指数
1
解决办法
350
查看次数

如何在不使用DisplayNameAttribute的情况下更改ViewModel显示名称?

我想直接更改某些属性(ViewModel的)的显示名称,而无需使用[DisplayName("prop name")]。这应该在返回View之前直接在控制器内部执行,或者在ViewModel类本身内部进行

我不想更改视图中的任何内容,也不想使用任何数据注释。我该如何实现?

有没有流利的语法可以做到这一点?

我正在使用:ASP.Net Core 2.0

数据注释的问题是我想在运行时获取显示名称(数据注释已预先编译)。

更新:

提出此问题的主要原因是找到一种方法来包装IStringLocalizer本地化数据注释时的行为,尤其是其行为。公认的答案很好地说明了这一点。

.net c# asp.net-mvc .net-core asp.net-core

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

如何直接在Kestrel中使用PEM证书?

我想在我的ASP.Net Core 2.0(带有Kestrel Web服务器)应用程序中使用HTTPS。

官方文档使用pfx格式,但是我想直接使用PEM格式(由Let's crypto生成),而无需进行任何转换(至少在我的C#代码之外没有任何转换)。有可能吗?

c# ssl-certificate .net-core kestrel-http-server asp.net-core

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

Serilog JSON 配置中的“使用”有什么作用?

Using在 Serilog JSON 配置中(例如在 .Net Core 环境中的 AppSettings.json 文件中)实际上做了什么?

让我们以这个配置为例:

"Serilog": {
  "Using": [ "Serilog.Sinks.Console" ], <=======***HERE***=========
  "MinimumLevel": "Debug",
  "WriteTo": [
    { "Name": "Console" },
    {
      "Name": "RollingFile",
      "Args": {
        "pathFormat": "logs\\log-{Date}.txt",
        "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] {Message}{NewLine}{Exception}"
      }
    }
  ],
  "Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ],
  "Properties": {
    "Application": "My Application"
  }
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我们使用了Filesink 而没有将其添加到Using属性中。但是,一切似乎都正常。

所以我不明白为什么我们基本上需要这个Using。有人可以向我解释一下吗?

c# serilog .net-core

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

ASP.Net Core`cookage authentication`在哪里存储对该cookie的引用?

有时我常常看到PHP开发人员在他们的cookie中传递Id,并将数据库中的引用保存到该cookie(因此他们可以通过cookie对用户进行身份验证).但在ASP.Net Core中,我从未见过.

ASP.Net Core如何以及在何处知道此cookie由此用户拥有?一切都存储在内存中(在某种对象中)?

如果是,这是否意味着如果我重新启动我的应用程序,用户应该再次登录?或者ASP.Net Core是否提供了任何方法来保持对cookie的引用,即使在重新启动应用程序之后?

.net c# asp.net cookies asp.net-core

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

在 Docker 容器启动时启动 bash 脚本不起作用

在过去的几个小时里,我一直尝试startup.sh在 docker 容器启动上启动我的脚本,但由于某种原因它不起作用。

我的 Dockerfile 用于创建图像:

FROM armv7/armhf-ubuntu:latest
MAINTAINER Mohammed Noureldin <m.n.e@hotmail.com>
RUN apt update && apt upgrade -y && apt install -y mumble-server
ADD scripts/startup.sh /startup.sh
Run Code Online (Sandbox Code Playgroud)

我的启动脚本:

#!/bin/bash
/etc/init.d/mumble-server start
Run Code Online (Sandbox Code Playgroud)

这里没有任何反应,虽然我尝试在脚本中创建一个文件,但也没有任何反应!

我尝试直接从命令行执行脚本,但它不起作用我不知道为什么:

docker运行命令:

docker run --name murmur -itd --restart always --network bridge -p 64738:64738 -v /var/lib/mumble-server/ -v /etc/ mnoureldin/murmur:latest /bin/bash -c "bash /startup.sh;/bin/bash"
Run Code Online (Sandbox Code Playgroud)

这是我尝试手动执行脚本时得到的结果:

43b9d8dd4116bc605537c7af35ab186ca165ea6e957fab5908d39b2f085edf41
mohammed@server01:~/Dockerfiles/Mumble $ docker attach murmur
root@43b9d8dd4116:/# bash
.dockerenv  boot/       etc/        lib/        mnt/        proc/       run/        srv/        sys/        usr/
bin/        dev/        home/       media/      opt/ …
Run Code Online (Sandbox Code Playgroud)

bash docker dockerfile docker-container

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