小编Mod*_*man的帖子

.NET Core 2中的ReadAsMultipartAsync等价

我正在将.net 4.5应用程序重写为aspnet core 2.0,并且我有一种方法在更新时遇到了一些问题:

    [HttpPut]
    [Route("api/files/{id}")]
    public async Task<Person> Put(int id)
    {
        var filesReadToProvider = await Request.Content.ReadAsMultipartAsync();
        var fileStream = await filesReadToProvider.Contents[0].ReadAsStreamAsync();
        return _personService.UpdatePerson(id, fileStream);
    }
Run Code Online (Sandbox Code Playgroud)

似乎请求不再具有Content,而是正文。没关系 但是,如果现在是MimeMultipart,如何读取身体?

我已经研究了IFormFile,但是我不必在前端进行更改吗?

任何能帮助我朝正确方向发展的方法都值得赞赏:)

c# asp.net-core

9
推荐指数
1
解决办法
3590
查看次数

使用AWS cli从AWS秘密管理器解析秘密

我正在检索我使用AWS cli存储在AWS秘密管理器中的秘密,如下所示:

aws secretsmanager get-secret-value --secret-id secrets
Run Code Online (Sandbox Code Playgroud)

哪个回报

arn:aws:secretsmanager<ID>:secret:my_secrets <number> my_secrets {"API_KEY":"ABCDEFGHI"}       <UUID string>
VERSIONSTAGES   AWSCURRENT
Run Code Online (Sandbox Code Playgroud)

有谁知道我如何得到秘密("API_KEY":"ABCDEFGHI")?我需要将这些秘密移到我的register-task-definition环境变量中.最好的方法是将它们存储在文件中并在我们之后删除它或将它们存储在变量中.它在linux机器上运行.

谢谢

linux amazon-web-services aws-cli aws-secrets-manager

8
推荐指数
8
解决办法
5231
查看次数

迁移到应用程序负载均衡器后面的 AWS fargate 后,SignalR 握手出现问题

迁移到应用程序负载均衡器后面的 AWS fargate 后,SignalR 握手出现问题。

\n\n

在我让它在带有 nginx 的 EC2 实例上运行之前,在遵循这个建议后工作得很好;\n SignalR 位于 Nginx 后面的 ASP.NET Core 中。\n但由于一些原因,我们必须将其移至 AWS fargate 并使用 Aws 应用程序负载均衡器 (ALB)。\n现在我们可以\xc2\xb4t 启动并运行 signalR。该服务有一个运行良好的 REST API。

\n\n

我仍然可以切换回旧的基础设施,这就像一个魅力。

\n\n

从 flutter 应用程序我得到这个:

\n\n
flutter: [Signals] Connection Restarting after http error - 404 - Not Found\nflutter: [Signals] Connection Closed - Cannot start a connection that is not in the \'Disconnected\' state.\nflutter: [Signals] [Transport] SEVERE: : Server returned handshake error: \'Handshake was canceled.\'\nflutter: [Signals] [Hub] SEVERE:  Server returned handshake …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services signalr .net-core aws-application-load-balancer signalr-client

8
推荐指数
0
解决办法
1536
查看次数

向 SpeechSynthesizer 添加新语言

所以我试图向 SpeechSynthesizer 添加一种新语言,特别是挪威语,但它似乎没有安装。

发现这个: Add another voice into .NET Speech (但这里的问题是不支持捷克语)

我已经从这里安装了挪威语包:http : //www.microsoft.com/en-us/download/details.aspx?id=27224

在我的代码中,我使用它来检查它是否已安装:

     foreach (var voice in speaker.GetInstalledVoices())
        {
            Console.WriteLine(voice.VoiceInfo.Description);
        }
Run Code Online (Sandbox Code Playgroud)

但它只输出: Microsoft Zira Desktop - 英语(美国)

检查了文本到语音转换工具,这也是唯一的选择。还尝试注销/登录并重新启动计算机。

有人知道怎么修这个东西吗?

.net c# speech-synthesis

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

多个实例的实体框架迁移策略

我有一个在 AWS Elastic Container Services (ECS) 上运行的 .NET 核心应用程序。- 该应用程序在两个不同的实例上运行。- 数据库是 SQL 服务器

该应用程序在启动时运行数据库迁移,效果非常好。但是后来我不得不迁移大量数据,这意味着迁移需要更长的时间。这导致移动的数据重复。

发生这种情况是因为两个应用程序首先检查数据库是否已执行迁移,两者都发现它没有执行,然后两者都开始运行迁移,这需要时间。完成后,它将迁移添加到数据库中。

人们如何解决这个问题?

我和其他人想到的可能解决方案

  1. 从应用程序的一个实例开始,然后向上扩展。这会起作用,但是每次发生迁移时我都必须手动缩小和放大。(可以自动完成,但需要时间)

  2. 将长时间运行的迁移包装在事务中,并在开始时将迁移设置为在数据库中完成。在提交更改之前检查它是否在数据库中。如果事务失败,请从数据库中删除迁移。

  3. 锁定数据库? EF Core 在迁移期间锁定数据库。看起来很奇怪。

  4. 使迁移成为部署过程的一部分。这似乎是最佳实践,但这意味着构建服务器需要知道数据库机密。我不害怕给它,但这意味着我将不得不维护一个重复的集合。

外面的人做什么?我错过了一些明显的解决方案吗?

谢谢

sql-server entity-framework amazon-ecs asp.net-core

7
推荐指数
1
解决办法
2204
查看次数

在 Node Express 中强制刷新缓存的 index.html 文件

确保所有用户获得新鲜的index.html而不是缓存的index.html的最佳方法是什么?

所以上周我尝试让用户缓存单页应用程序的 js 和 css 包。我在 server.js 文件中添加了最大年龄:

app.use(express.static('build', { maxAge: '365d' }));
Run Code Online (Sandbox Code Playgroud)

问题是index.html 文件也在build 文件夹中。这意味着它会在客户端缓存 365 天......

因此,即使我对 js 和 css 包进行了缓存清除,index.html 文件始终是相同的,因此由于旧的哈希值,这些包保持不变。

我现在已将服务器更改为使用 Etag:

app.use(express.static('build', { etag: true }));
Run Code Online (Sandbox Code Playgroud)

这很好用。

问题是我将其投入生产,现在所有用户都有一个过时的index.html。

我使用 Node Express 和 AWS 应用程序负载均衡器。

发送index.html的端点如下所示:

app.get('*', (request, response) => {
  response.sendFile(path.join(__dirname, 'build/index.html'));
});
Run Code Online (Sandbox Code Playgroud)

有人有聪明的解决方案吗?

我研究过使用这样的 php 文件:https://github.com/facebook/create-react-app/issues/1910。这是最好的解决方案吗?

caching node.js express

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

具有外键的数据库模型的 C# 8 非空引用类型

我正在尝试在我的项目中实现非空引用类型https://dev.to/integerman/safer-code-with-c-8-non-null-reference-types-4f2c。我喜欢它,但有一个关于数据库模型和约束的问题。

有没有办法说值 X 永远不会为 NULL,因为它在数据库中不可为空?

例如:

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

      public string Name { get; set; } = "No name set";

      public IEnumerable<Dog> Dogs { get; set; } = new List<Dog>();
}
Run Code Online (Sandbox Code Playgroud)

Person.Name 在数据库中为 nullable=false。有没有办法可以说这个属性永远不为空?现在我必须设置一个默认值。

public class Dog
{
    public int Id { get; set; }
   
    public string Name { get; set; } = "Noname";

    public int PersonId {get; set; }

    public Person Person { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在这里,我对狗中的人也有同样的疑问。这是数据库中的外键约束,没有人(所有者)就不能存在狗。有没有办法这么说;我知道这个值永远不会为空,相信我 …

c# entity-framework c#-8.0 nullable-reference-types

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