Tag: asp.net

Docker窗口给消息超时已经过期,操作还没有完成

我一直在尝试为Window机器设置Docker,并在Docker中运行Asp.Net core 2.0应用程序。 我已经设置了下面的项目。 寡妇10。 Visual Studio 2017,社区版本。 安装核心2.0。 我创build了一个示例Asp.Net Core2.0应用程序,并selectDocker来运行此应用程序。 以下是详细信息 – 默认项目设置参考图像 – Asp.Net core2.0项目设置 Docker运行状态 以下是超时问题的详细信息。 Time out has expired and the operation has not been completed. at System.ServiceProcess.ServiceController.WaitForStatus(ServiceControllerStatus desiredStatus, TimeSpan timeout) at Docker.Backend.Processes.WindowsDockerDaemon.TryToStartService(String args, Dictionary`2 env) in C:\gopath\src\github.com\docker\pinata\win\src\Docker.Backend\Processes\WindowsDockerDaemon.cs:line 138 at Docker.Backend.ContainerEngine.Windows.DoStart(Settings settings, String daemonOptions) in C:\gopath\src\github.com\docker\pinata\win\src\Docker.Backend\ContainerEngine\Windows.cs:line 200 at Docker.Backend.ContainerEngine.Windows.Start(Settings settings, String […]

如何将种子数据放入SQL Server泊坞窗图像?

我有一个使用ASP.NET Core和SQL Server的项目。 我正在试图把所有东西放在docker集装箱。 对于我的应用程序,我需要在数据库中有一些初始数据。 我能够从微软(微软/ mssql-server-linux)使用dockerSQL服务器图像,但它(显然)是空的。 这是我的docker-compose.yml: version: "3" services: web: build: .\MyProject ports: – "80:80" depends_on: – db db: image: "microsoft/mssql-server-linux" environment: SA_PASSWORD: "your_password1!" ACCEPT_EULA: "Y" 我有一个SQL脚本文件,我需要在数据库上运行以插入初始数据。 我find了一个mongodb的例子 ,但我找不到可以使用哪个工具来代替mongoimport。

用Docker开发ASP.NET Core的习惯用法是什么?

问题 假设您有一个需要一个或多个外部服务(如PostgreSQL数据库)的ASP.NET项目,并且假设您已经编写了一个可以启动的Dockerfile和docker-compose.yml 。 迭代修改代码,编译和运行应用程序的最习惯的方法是什么? 目前Dockerfile只是作为Dockerfile启动服务器,但是我做了一个改变之后,我做了: docker-compose down docker-compose build docker-compose up 这需要以下步骤: 停止服务器 停止数据库和其他服务 取出容器 启动数据库 启动服务器 这往往需要1分半钟或更多的时间。 这也有问题,编辑到Razor模板(不需要使用dotnet build编译重新编译)也需要重build容器,并将文件复制回来。 这导致等待1分半钟来进行简单的CSS样式更改或HTML文件更改,这在devise界面时非常麻烦。 我试过了 我已经四处搜寻优化这些时间,我正在想像的东西: 启动数据库和其他服务 用一个简单的bash进入ASP.NET Core容器 运行dotnet build && dotnet run在容器内的bash中dotnet build && dotnet run (在该容器内有效地开发) 永远不要停止数据库和其他docker-compose服务(除非我需要重置数据库状态) 但似乎这不是一个最佳的做法,而且几乎没有任何logging。 这个问题 docker工和docker工发展的惯用方式是什么?不用等待1分半钟,

kpm恢复无法findSystem.Net.Http

做一些与Docker的工作,尝试创build一个ASP.NET 5容器,但是当它恢复包时,kpm返回OK,除了: Unable to locate System.Net.Http 我也尝试与Microsoft.Net.Http.Client交换,但得到了类似的回应。 这是我的project.json文件: { "webroot": "wwwroot", "version": "1.0.0-*", "exclude": [ "wwwroot" ], "packExclude": [ "**.kproj", "**.user", "**.vspscc" ], "dependencies": { "Microsoft.AspNet.Server.IIS": "1.0.0.0-beta2-10877", "Microsoft.AspNet.Diagnostics": "1.0.0.0-beta2-11936", "Microsoft.AspNet.Mvc": "6.0.0.0-beta2-12332", "Microsoft.Framework.ConfigurationModel.Json": "1.0.0.0-beta1-10525", "System.Net.Http": "4.0.0.0" }, "frameworks": { "aspnetcore50": { "dependencies": { } } } } 这是我的Dockerfile: FROM microsoft/aspnet COPY /app/approot/src/Docker.Web /app WORKDIR /app RUN […]

Docker Image上找不到来自wwwroot的Assetss

我已经得到了Linux VM Docker Image,但是我遇到了一个困难。 我的wwwroot文件夹中的所有资产都找不到 加载资源失败:服务器响应状态为404(未find) 我已经包括在内 "webroot": "wwwroot" 在project.json文件中,但没有解决问题。 还有一件事是从VS 2015(在ISS Express上)运行一切正常 – 是否有我应该包括在Dockerfile中的东西? 编辑: 我将VOLUME添加到docker文件,但没有帮助: FROM microsoft/aspnet COPY . /app WORKDIR /app RUN ["kpm", "restore"] VOLUME ["/wwwroot"] EXPOSE 5004 ENTRYPOINT ["k", "kestrel"]

EF核心迁移使用asp.net核心,SQL Server和Docker产生dotnet SDK错误

我使用Docker for Windows版本1.13.0-rc5-beta35(9606) Windows 10专业版 Visual Studio代码 我已经使用yeoman生成器创build了一个使用Docker的ASP.NET Core项目: yo aspnet yo docker 当我试图让API从Docker容器连接到我本地运行的SQL Server实例时,遇到了一些问题。 为了解决这个问题,我创build了一个在自己的容器中运行的SQL Server实例(使用microsoft/mssql-server-linux映像)。 两个容器都在运行,并连接到同一个用户定义的网桥。 如果我打开我的asp.net核心容器中的bashterminal并运行命令: dotnet ef migrations add InitialMigration 我希望我的代码优先模型将在运行在networking上的SQL Server实例中创build,因为当我在本地运行安装程序(无容器)时会发生这种情况。 相反,我得到如下: Did you mean to run dotnet SDK commands? Please install dotnet SDK from: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409 我很困惑,因为我必须安装dotnet。 我已经使用microsoft/aspnetcore作为我的Dockerfile中的基础层,我可以看到,这反过来使用microsoft/dotnet:1.0.3-runtime因为它的基本层… 有人可以解释为什么我得到这个消息,如果我正在接近这个解决scheme正确的方式(Web API和SQL Server在不同的容器中)? 如果我确实需要安装dotnet sdk,我将不胜感激,如果有人能告诉我如何做Dockerfile的一部分 谢谢你的帮助 asp.net核心Dockerfile的内容 FROM microsoft/aspnetcore:1.1.0 WORKDIR /app COPY […]

如何正确运行迁移和使用entity framework核心种子docker MySql DB

我在我的ASP.NET核心解决scheme中实现了数据库迁移,因为它在以下问题中被推荐: 在ASP.NET 5中使用EF7进行数据库种子模式 我的解决scheme是设置为在Linux泊坞窗上工作,应用程序依赖于在Docker撰写文件中configuration的MySql容器,并在第一次运行时进行设置。 这些迁移在Startup.Configure方法中运行如下: using (var serviceScope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>().CreateScope()) { var context = serviceScope.ServiceProvider.GetService<ApplicationDbContext>(); context.Database.Migrate(); context.EnsureSeedData(); } 但是第一次运行应用程序总是会抛出以下错误: 在System.Private.CoreLib.ni.dll中发生types“MySql.Data.MySqlClient.MySqlException”的exception,但未在用户代码中处理 然后,如果等待几秒钟并重新启动debugging会话,则代码将毫无问题地执行,并且第一次运行的数据就在那里。 有没有办法在运行迁移之前等待数据库服务器准备就绪? 编辑: 如果我改变这个问题的迁移方法: 不能得到UserManager类而不是以前的错误我得到这个: 在System.Private.CoreLib.ni.dll中发生types“System.AggregateException”的exception,但未在用户代码中处理

无法使用入口点运行泊坞窗容器

我成功地能够build立和运行这个docker容器,但内部的asp.net核心应用程序/ microservice无法运行和退出,没有任何错误。 这里是docker集装箱的日志。 C:\Work\FloAppCore\Docker-Compose>docker-compose –verbose up -d –build compose.config.config.find: Using configuration files: .\docker-compose.yml docker.auth.find_config_file: Trying paths: ['C:\\Users\\flo-engineer-7\\.docker\\config.json', 'C:\\Users\\flo-engineer-7\\.dockercfg'] docker.auth.find_config_file: No config file found compose.cli.command.get_client: docker-compose version 1.16.1, build 6d1ac219 docker-py version: 2.5.1 CPython version: 2.7.13 OpenSSL version: OpenSSL 1.0.2j 26 Sep 2016 compose.cli.command.get_client: Docker base_url: http+docker://localnpipe compose.cli.command.get_client: Docker version: KernelVersion=10.0 14393 (14393.1593.amd64fre.rs1_release.170731-1934), Arch=amd64, BuildTime=2017-09-21T23:10:04.946582391+00:00, ApiVersion=1.30, […]

在Docker容器中运行不可信的.net核心应用程序的最佳实践

比方说,我想运行一个docker集装箱内的一些第三方.net核心应用程序,我不完全信任。 为了简化,假设应用程序是由dotnet new生成的简单的Hello World控制台应用程序。 这只是2个文件Program.cs和project.json 。 现在我已经尝试了以下方法: 将该应用程序复制到我的主机的某个文件夹 使用microsoft / dotnet映像创build一个新的容器,将该文件夹挂载为一个卷,运行特定命令来构build和运行该应用程序: $ docker run –rm -it –name dotnet \ -v /some/temp/folder/app:/app \ microsoft/dotnet:latest \ /bin/sh -c 'cd /app && dotnet restore && dotnet run' 我也在考虑将预定义的dockerfile与microsoft / dotnet作为基本映像。 它将基本embedded应用程序代码,将其设置为工作目录并运行恢复,构build和运行命令。 FROM microsoft/dotnet:latest COPY . /app WORKDIR /app RUN ["dotnet", "restore"] RUN ["dotnet", "build"] ENTRYPOINT ["dotnet", "run"] 然后,我可以将预定义的dockerfile复制到临时文件夹中,为特定的应用程序构build一个新的映像,最后使用该映像运行一个新的容器。 […]

在OSX中的Docker容器中缺lessDotnet Antiforgery DLL

我有这样的想法,有一个docker容器挂载一个已经编译好的aspnet核心1.1应用程序的文件夹。 当我这样做的文件丢失。 什么是最好的方式,使其不失踪? 如何重新创build问题: 在我的OSX主机上,我创build一个文件夹/myrootedpath/TheApp和 dotnet new -t web dotnet restore dotnet run 创build并启动我的Hello World应用 (我可以curl localhost所以我知道它在主机中工作。) 我用ctrl-c停止服务器。 然后我创build一个容器来装载提到的文件夹,编译并启动Web服务器 docker run -p 80:80 -ti \ -v /myrootedpath/TheApp:/theapp microsoft/dotnet \ /bin/bash -c 'cd /theapp; dotnet run' 但它停止了 Project应用程序(.NETCoreApp,版本= v1.1)是以前编译的。 跳过编译。 错误:未find依赖项清单中指定的程序集 – 程序包:'Microsoft.AspNetCore.Antiforgery',版本:'1.0.1',path:'lib / netstandard1.3 / Microsoft.AspNetCore.Antiforgery.dll' 我看到Antiforgery.dll丢失。 我想我可以find它并复制它并创build一个新的图像。 这是一个推荐的解决scheme? UPDATE 当我开始赏金时,我想澄清一下,这个问题归结为执行在容器外部编译的dotnet核心代码需要什么。