Tag: .net

适当的方式报告容器中的C#应用​​程序的性能数据(Docker)

回到以前的虚拟机时代,我们曾经创build了性能计数器来报告Windows应用程序内部的情况,并使用了perfmon或相关工具来监视,存档和分析这些数据。 现在容器是要走的路,对于什么是正确的做法有很多含糊之处。 我正在编写一个旨在作为Docker镜像部署的新性能关键应用程序,并且需要报告一些措施。 而且我碰巧遇到了很多问题: 性能是否会逆转? 如果不是,那是什么? 是否有足够的工具来支持从容器收集性能计数器? 对于在主机上运行的许多容器是否有意义? 如果我运行许多(如100个)docker图像的实例,如何理解性能数据? 我可以问一些工具从图像的所有实例中收集所有的性能指标,并给我一些聚合(总和/平均/ …)? 因此,总而言之,在用于Docker容器上的横向扩展的C#/ .NET应用程序中,报告性能度量的正确方式是什么(例如,执行通过了代码中的某个点的次数)?

鉴于下面描述的错误,人们如何在Ubuntu / Docker的ASP.NET Core Web API中进行身份validation?

我遇到了我认为是一个错误,阻止我加载Ubuntu上的X509Certificate2或Microsoft提供的基于Debian的Docker镜像。 这意味着我无法在这些平台上的Web API中初始化JwtAuthentication,并且正在寻求帮助: 你在Linux上成功使用JwtAuthentication吗? 如果是这样,你如何初始化JwtBearerOptions的X509Certificate? 你能看到我正在做什么的问题,或者提出一个解决方法吗? 我已经用corefx团队logging了这个问题,你可以在这里看到完整的讨论,但是下面是这个问题的主要描述: 我有一个在Docker容器中运行的Web API。 该容器是由提供的1.1.0包构build的: FROM microsoft/aspnetcore:1.1.0 并且Web API二进制文件被复制进来。API运行正常并按预期返回数据,直到我打开authentication,此时它需要一个X509SecurityKey来设置TokenValidationParameters.IssuerSigningKey值。 它尝试从string值初始化X509Certificate2时引发exception: string certValue = certificate.Value; byte[] byteCert = Encoding.ASCII.GetBytes(certValue); return new X509Certificate2(byteCert); 抛出一个OpenSslCryptographicException: Unhandled Exception: System.Exception: Failed to extract the Token Signing certificate from the Federation metadata. —> Interop+Crypto+OpenSslCryptographicException: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error at Internal.Cryptography.Pal.CertificatePal.FromBlob(Byte[] rawData, String password, X509KeyStorageFlags keyStorageFlags) […]

在Visual Studio中使用docker supper的空项目

我试图启动一个空的项目,我在Visual Studio 2017(.NET Core 1.1)中创build了Docker支持。 但是当我运行一个应用程序,铬运行,我有一个消息“你的应用程序正在开始…”,就这些。 当我创build一个没有docker支持的应用程序时,一切正常。 也许我应该先运行docker工人?

Docker组成 – 在VSTS上

我有一个.net核心应用程序,我想在docker上运行。 我使用VS Docker工具来“添加容器支持”,并添加了一个docker-compose项目。 当我build立它时,我得到使用我的重新编译.net核心应用程序和我的dockerfile的容器。 这是docker-compose.dcproj <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="15.0" Sdk="Microsoft.Docker.Sdk"> <PropertyGroup Label="Globals"> <ProjectVersion>2.0</ProjectVersion> <DockerTargetOS>Linux</DockerTargetOS> <ProjectGuid>a7cb971b-57ac-4704-851d-a322cf4f9e3f</ProjectGuid> </PropertyGroup> <ItemGroup> <None Include="docker-compose.ci.build.yml" /> <None Include="docker-compose.override.yml"> <DependentUpon>docker-compose.yml</DependentUpon> </None> <None Include="docker-compose.yml" /> </ItemGroup> </Project> 这里是文件: docker-compose.yml version: '3' services: coresandbox: image: coresandbox build: context: ./CoreSandbox dockerfile: Dockerfile docker-compose.override.yml version: '3' docker-compose.ci.build.yml version: '3' services: ci-build: image: microsoft/aspnetcore-build:2.0 volumes: – […]

启动时出现Dotnetcore容器错误,询问是否运行SDK命令

我正在创build一个简单的dotnetcore 2.0应用程序,我想对它进行容器化。 作为这个容器的想法将在部署上运行一次,以执行一些应用程序configuration任务。 目前,代码只是做这个… class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } } docker文件看起来像这样… FROM microsoft/dotnet:2.0-runtime ARG source WORKDIR /app COPY ${source:-obj/Docker/publish} . ENTRYPOINT ["dotnet", "consoleapp.dll"] 我在Visual Studio 2017中打F5,通过执行容器所在的docker image ls命令可以看到。 然后我尝试运行该容器,如下所示: docker run consoleapp: dev 我现在得到错误: Did you mean to run dotnet SDK commands? Please install dotnet SDK from: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409 我的想法是,因为我正在使用运行时的图像来build立我的图像,我应该能够以某种方式启动我的应用程序。 […]

不能通过VS2015运行networking核心docker集装箱

在向.net核心应用程序添加Docker支持之后,我尝试在Docker中debugging应用程序,并得到以下错误: 无法运行命令:“c:[project location] \ src [appname] \ Docker \ DockerTask.ps1 -Run -Enviroment Debug -Machine'default'-OpenSite $ False -RemoteDebugging $ True”,点击以获取更多详细信息。 docker集装箱已经开始不确定出了什么问题。

dotnet docker / bin / sh:1:[dotnet ,:找不到

我用dockerfile成功构build,但是当我尝试从构build映像运行一个新的容器时,我得到以下错误: 我需要做什么解决scheme? 错误:/ bin / sh:1:[dotnet,:找不到 docker运行命令: docker run –rm -it -p 8080:80 furkaandogan/myapp:0.1 Dockerfile: FROM microsoft/aspnetcore:1.1 ARG source WORKDIR /app ENV ASPNETCORE_URLS http://*:80 EXPOSE 80 COPY ./publish/myapp . ENTRYPOINT ["dotnet", "myapp.dll"] 问题scheme 问题是,泊坞窗忽略文件不允许复制地址 我通过将地址添加到docker ignore文件或使用允许的文件地址来解决问题 老dockerignoreconfiguration * !obj/Docker/publish/* !obj/Docker/empty/ 新的dockerignoreconfiguration * !obj/Docker/publish/* !obj/Docker/empty/ !publish/myapp

如何在Docker容器中运行.NETunit testing

我有一个包含MSTestunit testing的.NET核心应用程序。 使用这个Dockerfile执行所有testing的命令是什么? FROM microsoft/dotnet:1.1-runtime ARG source COPY . . ENTRYPOINT ["dotnet", "test", "Unittests.csproj"] 文件夹结构是: /Dockerfile /Unittests.csproj /tests/*.cs

如何在使用Dockerfile构build时解决错误“没有这样的文件或目录”错误

我在.net核心项目目录中有一个dockerfile,我将项目发布到我的项目目录下的一个out目录中,这样out文件夹中就有了所有的dll,但是当我尝试运行命令docker build -t floormindcore.web . 我得到这个错误 stat /var/lib/docker/tmp/docker-builder154411130/out: no such file or directory 这是我的Dockerfile下面 项目的文件夹结构 out目录是在我的linux服务器上的这个目录中,我的Dockerfile也是这样,这是我运行Dockerfile build命令的地方。 out目录包含我发布的dll

在Mac上使用Docker的IIS和.NET

情景:我们是一个由10人在Mac和Windows上开发的团队。 我们的项目使用NodeJS,.NET Framework 4.5,TSQL和IIS服务器。 为了让我们的应用跨平台,我们使用Vagrant来设置Windows。 问题:我们似乎在使用大量的时间来保持我们的开发环境运行。 在Mac和Windows上部署是不同的,部署到testing服务器是困难的,Vagrant机器是19GB,这使得部署缓慢。 解? 我们正在研究Docker,看它是否能为我们带来更好的结果。 该项目看起来很有希望,但似乎我们需要使用基于Windows的容器来运行只能在Windows Server 2016和Windows 10周年更新上运行的IIS和.NET Framework。 问题:我们必须使用基于Windows的容器吗? 我们可以在Mac上运行开发环境而不下载虚拟机​​吗? 我们应该使用Docker吗?