Tag: .net

如何构build两个二进制文件.net core 2控制台应用程序

我在.Net核心和c尖锐新。 我想在同一个命名空间中构build两个二进制文件。 这是两个控制台应用程序,一个服务器和一个客户端。 我想分享一些像“分数”这样的对象,然后像这样思考。 其实我已经创build了两个应用程序(通过“dotnet新控制台”命令),但我可以改变,并重新开始。 我在一个简单的文本编辑器(emacs)的docker集装箱内工作。 没有视觉工作室或视觉工作室代码:) 有可能吗? 编辑 :好的,我会尽量做得更精确。 我必须创build两个程序:一个是服务器,另一个是客户端。 客户必须连接才能玩游戏(多人游戏)。 我是否需要创build两个不同的项目(使用它们自己的名称空间/types/testing),或者我可以使用一个简单的项目(只需调用一次“dotnet new console”命令)并共享一个相同的名称空间,在服务器和客户端之间共享一些types(比如分数)和testing? 这里是我的curent目录(客户端和服务器是通过“donet new console”命令创build的两个目录: ├── README.md ├── client │ ├── client.csproj │ ├── obj │ │ ├── client.csproj.nuget.cache │ │ ├── client.csproj.nuget.g.props │ │ ├── client.csproj.nuget.g.targets │ │ └── project.assets.json │ └── srcs │ ├── Program.cs │ └── Types │ └── […]

遇到一个致命的错误。 需要库libhostpolicy.so

我正在运行dotnet核心2.0控制台项目。 尝试从Docker运行时遇到以下错误。 遇到一个致命的错误。 '/ app'中找不到执行应用程序所需的库'libhostpolicy.so'。

docker端口不可访问

一个愚蠢的问题。 但是我不能回答… 我有几个正在运行的容器 这里是DockerFile – FROM microsoft/aspnetcore:2.0 ARG source WORKDIR /app EXPOSE 80 COPY ${source:-obj/Docker/publish} . ENTRYPOINT ["dotnet", "DockerAgain.dll"] 我用这个命令来创build容器 docker run -p 4004:80 from_command_line 问题 浏览器为http:// localhost:4004返回“not found”错误为什么? 我该如何解决这个问题? 在容器内的端口暴露,端口redirect…我感到困惑和失望

Docker与.NET Core无法联系

林新的Docker和即时尝试设置2个容器,一个运行mongoDB和一个运行的Web应用程序。 问题是我无法通过localhost:5000或0.0.0.0:5000访问我的.NET核心应用程序。 Mongo运行良好。 这是我的docker-compose.yml version: '3' services: web: build: . ports: – "5000:5000" mongo: build: ../../../docker/wishare-mongo/ volumes: – ../../../docker/wishare-mongo:/data/db ports: – "27017:27017" 用于.NET Core应用程序的Dockerfile FROM microsoft/aspnetcore-build:2.0 AS build-env WORKDIR /app ENV ASPNETCORE_URLS="http://*:5000" # Copy csproj and restore as distinct layers COPY *.csproj ./ RUN dotnet restore # Copy everything else and build COPY . ./ […]

容器可以共享一个框架吗?

我知道,Docker容器可以共享一个数据量,但它们可以共享框架吗? 例如,如果我有两个在IIS上运行的.NET服务,我可以在它们之间共享框架吗?

如何在Docker容器中保持.NET Core控制台应用程序活着

我正在testing一个.NET Core 2.0应用程序,它使用Service Bus SDK从Event Hub中检索消息。 我设置了一个控制台应用程序来做到这一点,并打算作为一个Docker容器运行应用程序。 这个方法创build事件主机处理器将读取消息: private static async Task MainAsync(string[] args) { Console.WriteLine("Registering EventProcessor…"); var eventProcessorHost = new EventProcessorHost( EhEntityPath, PartitionReceiver.DefaultConsumerGroupName, EhConnectionString, StorageConnectionString, StorageContainerName); // Registers the Event Processor Host and starts receiving messages Console.WriteLine("Retrieving messages"); await eventProcessorHost.RegisterEventProcessorAsync<EventProcessor>(); Console.WriteLine("Sleeping"); Thread.Sleep(Timeout.Infinite); } 由于在类EventProcessor实现的事件处理器将是处理事件的处理器,所以我试图在处理器注册完成时阻止控制台应用程序退出。 但是,我找不到一个可靠的方法来保持应用程序的活着。 如果我按原样运行这个容器,我在输出窗口中看到的是: Registering EventProcessor… Retrieving messages Sleeping 并没有收到消息。

Docker撰写不启动mongo服务甚至主要服务取决于它

我正在尝试构buildcistream程,使用Docker-Compose和bash脚本构build,testing和发布我的.NET Core应用程序。 我有一个文件夹中的UnitTests,IntegrationTests和XApi项目,并创build了DockerFile和docker-compose.yml如下所示。 IntegrationTests依赖于mongointegration ,所以我添加了links和depends_on属性来testandpublish和depends_on testandpublish docker-compose.yml服务。 当我尝试docker-compose up testandpublish docker-compose up或者docker-compose up testandpublish ,它不能连接mongo。 (DockerFile – 第10步),mongo服务尚未启动(不明白为什么) 在步骤10中,如果我将RUN更改为CMD ,则可以连接到mongo,docker-compose正常工作。 但这次我无法检测到testing失败或在我的sh脚本中成功,因为现在它不会破坏docker-compose up命令。 我的问题是:为什么docker撰写不启动服务mongointegration ? 如果不可能,我怎么能理解服务testandpublish失败? 谢谢。 结构体: XProject -src -Tests -UnitTests -IntegrationTests -Dockerfile -docker-compose.yml -XApi 我的Dockerfile内容是(我已经添加行号来解释问题在这里): 1.FROM microsoft/dotnet:1.1.0-sdk-projectjson 2.COPY . /app 3.WORKDIR /app/src/Tests/UnitTests 4.RUN ["dotnet", "restore"] 5.RUN ["dotnet", "build"] 6.RUN ["dotnet", "test"] 7.WORKDIR /app/src/Tests/IntegrationTests 8.RUN […]

具有ASP.NET核心库的Docker容器

每次我用ASP.NET Core应用程序构buildDockerfile时,都会从networkingNuget存储库下载程序集。 基本上我想创build所有这些ASP.NET核心库(也可能是我通常使用的一些库)的docker图像。 从我的理解,我试图重塑GAC。 所以,我的问题是有可能使用像GAC一样的ASP.NET Core? 或者,我的第二个想法是,将ASP.NET Core库下载到容器,然后以某种方式在本地解决它。 我的目标是缩短build造docker集装箱的时间。 UPDATE 看起来不可能

如何将.net core web api部署到linux机器上

我使用.net核心创build了一个web api应用程序,并且我想用docker部署到linux。 怎么做 ? 我在project.json中的“commands”部分添加了这个(–server.urls),所以变成这样: "commands": { "web": "Microsoft.AspNet.Server.Kestrel –server.urls http://0.0.0.0:5000", }, 这是我的dockerfile FROM microsoft/aspnet:1.0.0-rc1-update1-coreclr COPY . /app WORKDIR /app RUN ["dnu", "restore"] EXPOSE 5000/tcp ENTRYPOINT ["dnx", "-p", "project.json", "web"] 我可以使用这个命令docker build -t myapp成功创build一个docker镜像。 但是当我运行docker工人 docker运行-d -t -p 80:5000 myapp,它抛出一个错误 "Error response from daemon: driver failed programming external connectivity on endpoint kickass_hopper (16d5675978b188131670f391614f7f89b6ec977ae88924ae422a9a9c18768f22): iptables failed: […]

为.net集装箱化应用程序创build一个CIpipe道

我的目标 正如标题所说,我正在尝试为将要在Linux中的dockerized环境中运行的大量.NET服务组装一个CI(持续集成)pipe道。 我组织中的开发人员目前使用C#和VSO / TFS,所以我们试图迁移到Linux平台,同时保留我们当前团队的工具/技能。 我在各种论坛上看到很多post,但一直没有find解决我的具体需求的任何东西 – 所以如果这之前已经回答 – 我将非常感激链接! 到目前为止,我已经做了以下试图certificate我能做些什么: 用unit testing创​​build一个C#项目。 将项目检入源代码pipe理(TFS在线) 在Linux上运行Jenkins 设置Jenkins来倾听源代码控制。 当检测到新代码时,使用MSBuild插件在Jenkins节点(这是Windows机器)上启动构build 如果构build完成而没有错误,则使用MSTest插件运行与C#项目关联的所有unit testing。 所有上述似乎工作得很好 – 这是我正在努力的下一个位。 我想做的事 现在我已经完成了一个构build并在代码中进行了testing,我希望能够执行以下操作(高级别): 将源代码从Jenkins窗口节点移动到Jenkins Linux节点 在Linux节点上构buildDocker容器 将Docker容器推入存储库 我曾经尝试过 我正在Jenkins使用自由式项目来编排上述内容。 (不知道这是不是正确的select – 但似乎没有打破汗水拉/build立/testing。) 我想,为了从Windows节点到Linux节点的代码,我需要推入到一个GIT仓库。 我的要求是,这是一个本地GIT,但如果这是不可能的,我愿意在线使用私人GIT。 我尝试build立一个Gogs-GIT本地存储库,但Jenkins并没有使用同样的语言。 在任何情况下 – 我一直无法弄清楚如何使用任何Jenkins插件将代码作为从我的Windows节点发布到不同的源代码控制环境中的后构build事件,而不是从第一个地方。 我现在想,也许我需要执行某种自定义脚本(也许在Windows节点上的批处理脚本)来推入GIT,然后有一个单独的Jenkins作业,侦听推送到GIT存储库启动Linux处理。 我对Linux和Jenkins都很新,所以任何帮助或指针都会很感激。