Tag: .net core

当在.net-core中执行docker化的新进程时,在linux上没有指定输出文件的Ffmpeg错误

一段时间以来,我创build了一个完整的.net框架的小程序,可以翻录MP3,然后添加元信息和缩略图。 为了创新,我开始将应用程序移植到.net内核。 之后,我认为这将是在Linux上的Docker中运行这个很酷。 这花了一些时间,但我得到了它的工作。 现在我遇到了这个问题,我可以从video文件撕裂MP3,但是当我尝试结合元信息,缩略图和MP3 ffmpeg告诉我“至less有一个输出文件必须指定” 我添加了一些检查,以便程序可以在Linux和Windows上运行(切换path等) 我试过了: 在Windows上运行相同的参数结构(作品) 手动启动在Linux上的编码(工程) 简化命令中使用的名称,path和标题 replace额外的空格和特殊字符,只允许“ – ”和单个空格 下面我有一个命令的例子,当我手动执行它的时候工作,但是当我的程序执行的时候产生了前面提到的错误。 另外请记住,从video中翻录mp3会导致所需的输出文件。 ffmpeg -i "temp/vid-id.mp3" -i "temp/vid-id.jpg" -map 0:0 -map 1:0 -c copy -y -id3v2_version 3 -metadata title="title" -metadata artist="artist" -metadata album="album" "completed/file – name.mp3" 从.net-core上下文开始,我使用下面的代码片段: using (var ffmpegProcess = new Process()) { ffmpegProcess.EnableRaisingEvents = false; ffmpegProcess.StartInfo.CreateNoWindow = true; ffmpegProcess.StartInfo.UseShellExecute = […]

nginx与.net核心kestrel – 多个vs单个实例

我有4个.net核心Web应用程序运行(3'微'服务和一个网站)。 我正在尝试使用docker来决定部署策略。 据我所知,我的select如下: 共有4个容器 – 每个容器都有一个核心应用程序和一个nginx实例 共有8个容器–4个.net核心容器和4个nginx容器 共5个容器 – 4个.net核心容器和共享的nginx容器 一些注释: 随着时间的推移,还将增加更多的服务。 这个设置将在linux上运行 在将来,当站点负载变高时,我会想要做负载平衡,并在自己的(多个)服务器上运行这四个网站中的每一个。 我也想要启动每个服务的多个实例,因为它们是无状态的。 问题是 ; 是否有充分的理由使用单独的nginx实例或所有.net应用程序使用相同的nginx容器?

Nginx – 反向代理

我有两个docker镜像,一个用于nginx,另一个用于.Net Core应用,同时运行在一个桥接networking上。 我在nginx镜像中发布了80端口,写下了这个configuration: server { listen 80; location / { proxy_pass http://172.17.0.3:5000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } 而且我在.Net Core Image中公开了5000端口。 每当我打电话给Nginx的IP它给502 Bad Gateway 。 可能是什么问题呢?

如何在Docker容器中使用.NET核心访问远程URI?

我一直在试图解决这个问题,现在已经很长时间了,我一直无法find一个可行的解决scheme。 我不能得到我的XmlReader.Create(String uri, XmlReaderSettings settings) (或XDocument.Load(String uri) ),以实现我试图使用一个远程服务的path。 这个问题很容易重现(我希望):运行一个.NET Core 2.0控制台应用程序,试图访问: XmlReader xmlReader = XmlReader.Create("file://magic.example.com/test.xml", xmlReaderSettings); 要么 XDocument doc = XDocument.Load("file://magic.example.com/test.xml"); 将其转换为Docker项目(Linux,不是Windows),然后运行它。 我发现得到的错误是: System.IO.FileNotFoundException: 'Could not find file '/app/\\magic.example.com\test.xml'.' 破坏的要求 :我的组织使用Windows风格的文件共享,我们希望保持这一点,我可以回到FTP,但如果我这样做,这将长期以来的bug。 编辑#1: 为了在我的环境中正常工作,我已经开始使用NuGet包SharpCifs.Std ,它在Windows和Linux上都是完全稳定的。 这不是这个问题的“理想”解决scheme,但运行良好。 如果我遇到一个非基于包的解决scheme,我会再次编辑这个post。

无论使用ITicketStore还是IDistributedCache,重新启动服务器时,身份validationCookie都会停止工作

我的最终目标是能够在Heroku中重新启动我的dyno,并且当应用程序再次启动时,已经login的所有用户仍然login。我已经针对数据库运行迁移,以设置IDistributedCache正在使用的表那么我已经实现了使用IDistributedCache 。 当我在本地尝试时,这是有效的:如果我注释掉opt.SessionStore我必须在每次重新启动应用程序时都login,但是不需要。 但是,当我loginHeroku应用程序时,必须在重新启动后再次login。 我得到这个警告,我不知道它是否与它有关: 2017-10-03T13:45:09.144170+00:00 app[web.1]: [40m[1m[33mwarn[39m[22m[49m: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35] 2017-10-03T13:45:09.144192+00:00 app[web.1]: No XML encryptor configured. Key {bb36a43c-d5ed-4d03-9381-0e91868cd7a0} may be persisted to storage in unencrypted form. 我有一些日志,所以当我login时,我可以在日志中看到这样的东西: 2017-10-03T13:44:48.848325+00:00 app[web.1]: Retriving Oskar Klintrot with key be94b055-4493-4602-9e72-2bcb6f009de2 但是,在重新启动后,日志中什么也没有显示出来。 可以认为cookie是无效的或应用程序甚至不试图检索用户som会话存储了吗? 是甚至有必要使用ITicketStore ,而不是通常存储在cookie中的用户(文档说This is most commonly used to mitigate issues with serializing large identities into cookies. )。 产品规格: dotnet核心2.0 在Heroku上运行爱好testing的Docker […]

如何使用Docker和dotnet watch来设置ASP.NET核心2.0

我正在尝试设置运行dotnet watch run的Docker容器dotnet watch run并检测主机文件中的更改。 我现在拥有的是这样的: FROM microsoft/aspnetcore-build:2.0 COPY . /app WORKDIR /app ENV ASPNETCORE_URLS=http://+:5000 EXPOSE 5000 ENV ASPNETCORE_ENVIRONMENT=Development ENTRYPOINT dotnet restore && dotnet watch run 然后在我docker-compose.yml文件中,我使用容器中的/app文件夹设置了一个共享主src文件夹(使用.csproj文件夹)的卷。 这一切似乎工作,但当我作出更改时,容器内的dotnet watch重新编译一切,并产生新的文件bin/和obj/共享回到我的文件夹。 在这一点上,Visual Studio Code检测到更改,并要求我在我身边进行dotnet restore 。 我怎样才能防止这种情况发生? 看来,不可能排除子文件夹的卷共享。

rabbitmq优雅的出口应该等待事件处理者

我有麻烦做正确的方式。 我有一个.net核心应用程序在docker集装箱。 当docker集装箱停下来,我需要等待我的邮件处理(上传到FTP),并closures连接。 但是,现在我可以closures连接,但不会等待我的eventHandler完成。 任何想法的解决scheme? 它看起来很像: 等待RabbitMQ线程在Windows Service OnStop()中完成 。 虽然我不使用Windows服务,但基本概念将是一样的,但我不想让自己离队。 这是我的代码看起来像: public class AmqpConsumer : IAmqpConsumer { private readonly IConnection _connection; private readonly ILogger<AmqpConsumer> _logger; public AmqpConsumer(ILogger<AmqpConsumer> logger, IOptions<AmqpMessageBrokerConfig> config, IConnectionFactory connectionFactory) { _logger = logger; connectionFactory.Uri = config.Value.Uri; _connection = connectionFactory.CreateConnection(); } public void CloseConnecion() { _logger.LogInformation("Close connection."); _connection.Close(); _logger.LogInformation("Connection closed."); } public […]

如何从docker容器中的bash检查.net核心dll的版本

我有一个运行.Net Core 1.x Web API的docker容器。 服务的打包方式存在问题,无法正常启动。 我可以通过shell进入 docker run -it –entrypoint /bin/bash my-image 在容器上运行docker export …我知道问题是Newtonsoft.Json.dll的错误版本,因为我能够在Windows 10上检查Newtonsoft.Json.dll的版本。 有没有一种方法,我可以检查我的bash提示符,而在我的docker集装箱的Newtonsoft.Json.dll的版本?

Docker构build安装不必要的包,导致图像运行失败

我正在使用docker和amazon EC2实例(本地机器是mac)在dotnet核心项目上工作。 一切都很好,直到今天。 在我的最后一个docker版本上,命令dotnet恢复开始安装新的和必要的软件包。 它应该只安装65个包,现在我得到了一百多个。 此外,docker生成的图像没有任何原因,从500Mo增长到850Mo。 你有什么线索可能来自哪里。 我的完整安装: Mac OS El Capitan 可视代码1.17.2 .net核心1.1 docker Amazon EC2实例 ——编辑:更多信息——— 我的csproj文件 <Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp1.1</TargetFramework> </PropertyGroup> <ItemGroup> <Folder Include="wwwroot\" /> </ItemGroup> <ItemGroup> <PackageReference Include="AWSSDK.CognitoIdentity" Version="3.3.2.6" /> <PackageReference Include="AWSSDK.Core" Version="3.3.13.1" /> <PackageReference Include="AWSSDK.Extensions.NETCore.Setup" Version="3.3.0.3" /> <PackageReference Include="AWSSDK.S3" Version="3.3.5.14" /> <PackageReference Include="SSH.Net" Version="2016.0.0" /> <PackageReference Include="ImageSharp" Version="1.0.0-alpha9-00089" /> <PackageReference […]

在从docker运行时连接到.netcore 1.1 web api中的mysql时出错

我正在尝试在MySQLnetworking核心1.1中使用MySQL作为后端。 我为我的项目添加了docker支持。 dockerfile和docker -compose.ci.build.yaml , docker -compose.yml和docker-compose.override.yml如下所示。 但是我得到一个错误 MySql.Data.MySqlClient.MySqlException:'UnableToConnectToHost'ExtendedSocketException:连接拒绝, dockerfile FROM microsoft/aspnetcore:1.1 ARG source WORKDIR /app EXPOSE 80 COPY ${source:-obj/Docker/publish} . ENTRYPOINT ["dotnet", "PDSController.dll"] 泊坞窗,compose.ci.build.yaml version: '3' services: ci-build: image: microsoft/aspnetcore-build:1.0-1.1 volumes: – .:/src working_dir: /src command: /bin/bash -c "dotnet restore ./PDSController.sln && dotnet publish ./PDSController.sln -c Release -o ./obj/Docker/publish" 泊坞窗,compose.yml version: '3' services: pdscontroller: […]