Tag: .net

Net Core 2.0 – 部署时响应速度慢。 总是100ms +

我刚刚在我的VPS上部署了我的api的第一个dev版本,以允许我的前端用户轻松访问它。 我的设置非常简单 – .NET Core 2.0(API,JWT访问控制)+ PostgreSQL。 即使对于注册端点空的简单请求,我也会得到100ms甚至更长的响应时间。 在本地主机上(而不是在Docker中),要好得多 – 大概8-15毫秒。 应用程序和数据库都在4core / 8gb VPS上的nginx代理后面的docker容器中,所以它不应该是一个问题。 dockerconfiguration的一些问题? 我虽然是与db有关的东西,但是即使在模型validation的时候它还是很慢,所以它根本不调用db,这是另一回事。 我会感谢任何帮助…

只是因为一个程序有一个graphics用户界面是否意味着它会崩溃在Windows泊坞窗?

我正在尝试通过命令行启动现有的应用程序,并且实际上在Docker容器中有一个GUI。 我在启动时遇到无效操作exception,很可能是因为此程序启动了GUI。 这是不公平的,因为Azure Windows Docker容器不支持GUI? 我理解不需要GUI的概念,也不能将RDP转换成使用GUI的容器,但是如果一个程序恰好有一个GUI,它将不能运行?

docker化.net核心应用程序如何共享项目?

我想分享一个包含2个dockerized .net核心应用程序之间的数据合同的公共项目。 我的解决scheme具有以下结构。 Solution.sln /packages /src /webapi (Dockerized) /server (Dockerized) /messages (shared) 我可以把Dockerfile放在sln文件旁边,但是我将只能有一个文件。 如何更好地组织解决scheme? 把共享项目放在一个单独的解决scheme中,并发布到自己的nuget服务器是一个矫枉过正的。

连接到Docker Container .Net Core

所以我试图dockerize一个.NET核心项目。 我能够创build图像并运行容器,但是我无法连接到容器,即使我暴露了端口。 我用这个命令来运行容器: docker run -d -p 8080:80 –name myapp aspnetapp 当我运行并检查日志时出现以下内容: Hosting environment: Production Content root path: /app Now listening on: http://+:80 Application started. Press Ctrl+C to shut down. 这是我的Program.cs var host = new WebHostBuilder() .UseKestrel() .UseIISIntegration() .UseContentRoot(Directory.GetCurrentDirectory()) .UseStartup<Startup>() .UseApplicationInsights() .Build(); host.Run(); 这是我的DockerFile: FROM microsoft/aspnetcore-build:1.1.2 AS build-env WORKDIR /app # Copy csproj and restore […]

Docker的aspnetcore Heroku – 授予权限

我已经使用microsoft / aspnetcore-build:2.0创build了一个简单的docker镜像。 这在当地运行良好,但我想在Heroku上运行此图像。 当我尝试按照这些命令来做到这一点… docker tag <image-name> registry.heroku.com/<heroku-app-name>/web docker push registry.heroku.com/<heroku-app-name>/web …我得到这个'EACCES权限被拒绝'的错误: Unhandled Exception: Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Networking.UvException: Error -13 EACCES permission denied 我可以通过遵循Heroku的最佳实践( 在此概述)来在本地重新创build此错误,其中说: 我们强烈build议以非root用户身份在本地testing映像,因为容器在Heroku中不能以root权限运行。 …当部署到Heroku时,我们也以非root用户身份运行你的容器(尽pipe我们不使用在Dockerfile中指定的USER) 很明显,我需要我的应用程序没有root权限运行。 任何人都可以推荐如何做到最好?

docker中的aspnetcore:windows和linux容器的不同行为

我使用最后的Docker和MSVS 2017在Windows 10 Professional上工作。 我使用默认模板创build了简单的web api应用程序,并仅更改了BuildWebHost方法: public static IWebHost BuildWebHost(string[] args) => new WebHostBuilder() .UseKestrel() .UseStartup<Startup>() .Build(); 然后发表它: dotnet publish -c Release 然后我设置位置在PowerShell中发布文件夹,并运行docker图像(目前在Windows模式下的docker): docker run –rm -it -v ${PWD}:C:/api -p 6722:80 microsoft/aspnetcore:2 在容器cmd中 cd api dotnet mywebapi.dll 结果: http://localhost:6722/api/values不起作用, http://172.30.163.123/api/values http://localhost:6722/api/values起作用。 然后我打开docker linux模式并运行这个模式: docker run –rm -it -v ${PWD}:/api -p 6722:80 microsoft/aspnetcore:2 在容器bash中: cd api […]

Visual Studio 2017 Docker – 更改多阶段构build的目标

如果我有一个有多个阶段(比如base和build)的docker文件,有没有办法改变visual studio在debugging容器时使用的docker命令 – 它似乎使用了docker文件中的第一个版本,而没有调用随后的阶段。 这是我的docker文件: FROM microsoft/aspnetcore:2.0.3 AS base WORKDIR /app EXPOSE 80 FROM microsoft/aspnetcore-build:2.0.3 AS build WORKDIR /src COPY *.sln ./ COPY Web/Web.csproj Web/ RUN dotnet restore COPY . . WORKDIR /src/Web RUN dotnet build -c Release -o /app FROM build AS publish #RUN npm install RUN dotnet publish -c Release -o /app FROM […]

在Mono中使用UnixSignal引发System.ArgumentException

我有一个控制台应用程序在Docker容器中运行.Net 4.6.1单声道,它运行良好。 进一步开发应用程序时,我正在考虑使用Nuget包Mono.Posix来响应unix信号。 根据Mono文档 ,build议在单独的线程中运行UnixSignal处理。 所以我试图做到这一点,如下面的代码: public void Run() { var signalHandler = new Thread(new ThreadStart(ListenToSignal)); signalHandler.Start(); } private void ListenToSignal() { var signals = new List<UnixSignal>() { new UnixSignal (Mono.Unix.Native.Signum.SIGHUP), new UnixSignal (Mono.Unix.Native.Signum.SIGINT), new UnixSignal (Mono.Unix.Native.Signum.SIGQUIT), new UnixSignal (Mono.Unix.Native.Signum.SIGTERM) }; int index = UnixSignal.WaitAny(signals.ToArray()); var signal = signals[index].Signum; Console.WriteLine($"Terminate signal was called: {signal}"); } […]

DotNet构buildCLI在terminal中工作,但不在Docker构build中

这是我第一次尝试.net核心和docker。 我不知道什么是错的。 我可以在terminal运行dotnet restore / dotnet build / dotnet run ,没有任何问题。 该网站加载得很好。 所以我想给docker一个尝试(最终在云中的VM上运行)。 我运行docker build -t latest . 这导致: Step 5 : RUN dotnet build —> Running in e463aff85460 Project app (.NETCoreApp,Version=v1.0) will be compiled because project is not safe for incremental compilation. Use –build-profile flag for more information. Compiling app for .NETCoreApp,Version=v1.0 /app/project.json(32,58): error […]

运行Windows应用程序的Docker

我理解Docker是一个集装箱化的工具,只有一套有限的API,以便与平台无关。 我想了解它在典型的Windows开发上的限制。 例如,它是否仅限于写入文件系统的访问(并因此排除了写入registry的应用程序)? 在Dock不适合的情况下是否有一定程度的复杂性(但是我听说docker支持MSSQL)?