从docker容器连接到SQL Server数据库
我在计算机上安装了Windows的Docker.有一个针对.NET CORE 1.0.0的控制台应用程序,该应用程序试图访问在其他VM上运行的SQL Server数据库.我可以从我的计算机上ping ping vm运行SQL Server. 当我尝试使用机器上命令提示符的dotnet run运行控制台应用程序时,效果很好.但是,当在Docker容器中运行相同的应用程序时,我会收到一条消息 在网络相关或实例特定的错误时发生 建立与SQL Server的连接.没有找到服务器或 无法访问.验证实例名称是正确的,并且 SQL Server配置为允许远程连接. (提供商:TCP 提供者,错误:40-无法打开与SQL Server的连接) 我尝试使用 docker run --add-host sqldemo: 但这没什么区别. 解决方案 假设 Microsoft SQL Server 2016
0 2024-04-17
编程技术问答社区
如何使nginx反向代理在.Net核心中与gRPC一起工作?
我遇到了一个问题,我无法让Nginx与GRPC正常使用.我正在使用.NET CORE 3.1用于支持REST和GRPC的API. 我正在使用以下Docker图像: .net core 3.1(Aspnet:3.1-alpine) nginx(nginx:最新) 客户端正在本地运行,因为我只是通过NGINX连接到Docker容器(端口8080和443映射到主机) 我已经在Docker容器中构建了API图像,并且正在使用Docker构成旋转所有内容. 当涉及GRPC时,我的API非常简单: app.UseEndpoints(endpoints => { endpoints.MapGrpcService(); endpoints.MapControllers(); }); 我的API前面及以下是我的Nginx配置.但是RPC电话行不通.我无法通过客户端连接到GRPC服务,它返回502请求. 我得到2020/06/2
0 2024-04-17
编程技术问答社区
System.InvalidOperationException: '一个路径库只能用IApplicationBuilder.UsePathBase()来配置,'。
我有一个在Docker中运行的ASP.NET Core 2解决方案,该解决方案在1机器上运行良好,而在2017年专业人士,但在另一台机器上运行的机器vs 2017社区,我会收到以下错误 " system.invalidoperationException:'路径基础只能是 使用iapplicationbuilder.usepathbase()配置.' 尝试使用Docker启动或调试解决方案时.如果我使用IIS Express启动解决方案,则可以正常工作. 我的项目没有什么特别的: public class Program { public static void Main(string[] args) { BuildWebHost(args).Run(); //
0 2024-04-17
编程技术问答社区
在Linux上Dotnet Core Docker容器泄漏内存并导致OOM
我正在Docker中的Linux容器中运行Dotnet Core 2.2. 我尝试了许多不同的配置/环境选项 - 但是我一直回到相同的记忆中的问题('Docker Events'报告了OOM). 我在Ubuntu上主持的生产中.为了开发,我在Windows的Docker上使用Linux容器(Mobylinux). 我回到运行Web API模板项目,而不是我的实际应用程序.我实际上是在返回一根绳子,什么也没做.如果我从卷发上称其为1000次,则容器将死亡.垃圾收集器似乎根本没有工作. 尝试在Docker-Compose中设置以下环境变量: DOTNET_RUNNING_IN_CONTAINER=true DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true ASPNETCORE_preventHostingStartup=true 还尝试了码头组合中的以下内容: mem_reservation: 128m mem_li
0 2024-04-17
编程技术问答社区
从C# docker访问kubernetes服务
我正在尝试使用Kuberentes服务中的C#Docker访问Kubernetes服务. 我有一个python docker yaml文件,并希望从C#dotnet core Docker编程使用相同的YAML创建POD,该core core docker运行同一python docker群.我找到了dotnet core的kubernetes api. using System; using k8s; namespace simple { internal class PodList { private static void Main(string[] args) { var config = KubernetesClientConfiguration.InClusterConfig(); IKubernetes client = new Kubernetes(config);
0 2024-04-17
编程技术问答社区
为什么端口未在Docker中转发?
我的dockerfile: FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base #USER app WORKDIR /app EXPOSE 80/tcp FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build ARG BUILD_CONFIGURATION=Release WORKDIR /src COPY ["Services/Catalog/Catalog.API/Catalog.API.csproj", "Services/Catalog/Catalog.API/"] RUN dotnet restore "./Services/Catalog/Catalog.API/./Catalog.API.csproj" COPY . . WORKDIR "/src/Services/Catalog/Catalog.API" RUN dotnet build "./Catalog.API.cspro
0 2024-04-16
编程技术问答社区
在Windows Docker容器中设置语言和区域设置
我正在基于mcr.microsoft.com/dotnet/framework/runtime:4.8基本图像创建一个docker容器. 此图像设置为en_US,这意味着所有Windows语言和区域设置以及默认位置均设置为美国. 我需要做的是将其更改为en_GB并将位置更改为默认用户的United Kindom,因为我有一个.NET应用程序,该应用程序对第​​三方库的依赖性,该应用程序使用此库来输出数据脱颖而出.但是,我尝试过的任何事情似乎都无法更改迄今为止的语言和区域设置. 我到目前为止尝试过的事情: 试图使用intl.cpl国际设置导入设置并更新默认用户: # Set Locale and language & $env:SystemRoot\System32\control.exe "intl.cpl,,/f:`"UKRegion.xml`"" # Set Languages/culture Set-Culture en-GB ukregion
0 2024-04-16
编程技术问答社区
如何将班级库参考包括在Docker文件中
我正在尝试为.NET核心应用程序构建Docker文件,该应用程序在我试图构建Docker时都会引用类库的引用. 跳过项目,因为找不到 下面是我正在使用的docker文件 FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env WORKDIR /app # Copy csproj and restore as distinct layers COPY *.csproj ./ RUN dotnet restore # Copy everything else and build COPY . ./ RUN dotnet publish -c Release -o out # Build runtime image FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 WORKDIR /app COPY --from=build-env /app/out . ENTRYPOIN
0 2024-04-15
编程技术问答社区
当环境变量发生变化时重新加载配置
在startup.cs文件中我有 public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .AddEnvironmentVariables(); Configuration = builder.Build(); } 有带有配置的 AppSettings.json 文件.喜欢: { "Log" : { "Type" : "value from appsettings.json" } } reloadOnChange设置为true,所以,当我更改 a
0 2024-04-15
编程技术问答社区
从一个多项目的dot net core解决方案中构建一个Docker镜像
我正在尝试从视觉工作室解决方案构建一个由两个项目组成的docker映像: 一个项目包含常见代码(HTTP方法,日志记录等) 另一个是业务逻辑和应用程序 我可以在Visual Studio中构建和运行,该录音室会产生我可以在我们的测试环境中部署的Docker映像.但是,在测试环境中发送到API的任何帖子都会返回500错误.我可以在错误响应中看到参考文献:'/Users/Tim/Documents/Dotnet Code/dotnetcore-app/App/MyClass.cs',这使我怀疑图像有一些东西 - 路径在我的笔记本电脑上. 希望其他人可能会遇到类似的东西,或者可以为建立这样的多项目解决方案提供一些指针. 免责声明:这是我第一次使用dotnet core和Visual Studio-我在Docker方面有一些经验. 解决方案 如果您使用Visual Studio中的"标准" Dockerfile模板,则可能会出现在本地PC上构建"常见"项目(可能
0 2024-04-14
编程技术问答社区
身份服务器4和docker
我正在尝试使用Docker配置IdentityServer4,但我无法使其正常工作.首先,我以客户凭据的身份服务器文档为例:保护API使用客户凭证 身份服务器 托管在港口5000 上 webapi 托管在端口5001 上 在我的webapi的Startup.cs文件的方法中,我做了以下操作(问题可能在这里): app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions { Authority = "http://web:5000", RequireHttpsMetadata = false, ApiName = "api1" }); 客户 和客户 // Everything is fine here... var disc
0 2024-04-14
编程技术问答社区
将docker环境变量传递给.net core
我遵循了这一文章和 github github 我认为编译,教程已经过时了. (Configuration = builder.Build();)引发错误.那么如何访问docker传递的env? docker-compose myproj: image: mcr.microsoft.com/dotnet/core/sdk:2.2 restart: on-failure working_dir: /MyProj command: bash -c "dotnet build MyProj.csproj && dotnet bin/Debug/netcoreapp2.2/MyProj.dll" ports: - 5001:5001 - 5000:5000 volumes: - "./MyProj:/MyProj" environment: DATABASE_HOST: dat
0 2024-04-14
编程技术问答社区
webfarm的.Net核心机器密钥替代方案
我一直在使用Dotnet Core来创建一个在Linux主机上的Kubernetes群集中运行的应用程序.当我测试它时,它在验证CSRF代币时会发现异常,这很有意义,因为我还没有在每个实例上编辑机器键相同.当我继续在Web.config中设置机器密钥时,我注意到这将不再在.NET Core中使用. 现在使用DataProtection API,机器密钥不再工作.我尝试将API实施到我的应用程序中,但是当我阅读时,我需要使用网络共享来交换我震惊的所有实例之间的键.当然,必须有一种更容易的方法来实现这一目标,而不必依靠份额才能在线? 我尝试在"配置"方法中的启动类中设置以下内容: services.AddDataProtection().SetApplicationName("DockerTestApplication"); i以某种方式希望使用应用程序名称生成键,但这并没有解决问题. 我找到了一些有趣的文档,所有这些文档都使用不再编译的代码,我想Microso
0 2024-04-14
编程技术问答社区
如何用docker在dotnet上进行优雅关机?
有没有办法优雅地关闭dotnet core 应用程序在 docker 中运行?如果是,我应该听哪个事件? 我想要的是取消请求,我想将取消令牌传递给当前方法,并在他们工作时推迟关闭. 寻找与dotnet core相关的示例代码,参考链接等,而不是通用信息 更新 这个问题不是 Docker容器即使在.NET Core Console Application 中使用Console.Readline()立即退出因为我没有立即退出问题.我需要利用 解决方案 在.NET Core 2.0中,您可以使用AppDomain.CurrentDomain.ProcessExit事件,该事件在Docker中的Linux上正常工作. AssemblyLoadContext.Default.Unloading甚至在.NET Core 2.0之前也可以工作. 其他解决方案 System.Console的事件称为CanculKeypress.我相信当Sigint事件传递到dotnet时,
0 2024-04-14
编程技术问答社区
为什么FileSystemWatcher在观看Windows卷的Linux容器中不起作用?
给定程序: using System; using System.IO; namespace fsw_bug_poc { class Program { private static FileSystemWatcher _fileSystemWatcher; static void Main(string[] args) { _fileSystemWatcher = new FileSystemWatcher("Watched", "*.*"); _fileSystemWatcher.Changed += Notify; _fileSystemWatcher.Created += Notify; _fileSystemWatcher.Deleted += Notify; _fileSystemWa
0 2024-04-14
编程技术问答社区
如何在Docker Compose中等待MSSQL?
i具有依赖MSSQL的A Service (ASP.NET Core Web应用程序).这些服务是使用Docker组成的,我希望Docker撰写以首先启动数据库,并在运行我的服务之前等待 Ready .为此,我将docker-compose.yml定义为: version: '3.7' services: sql.data: container_name: db_service image: microsoft/mssql-server-linux:2017-latest healthcheck: test: ["CMD", "/opt/mssql-tools/bin/sqlcmd", "-S", "http://localhost:1433", "-U", "sa", "-P", "Pass_word", "-Q", "SELECT 1", "||", "exit 1"] my_service: container_nam
0 2024-04-14
编程技术问答社区
无法从运行在docker上的.net core应用程序中连接到SQL Server express。
我有SQL Server 2016 Express,Windows 10机器上安装了Windows和IIS的Docker. SQL Server Express配置为在1455端口上收听. Northwind样本数据库在那里. Windows防火墙被禁用. Ipconfig显示以下内容: Ethernet adapter vEthernet (DockerNAT) 2: Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::70f1:3323:a7a8:b7a5%21 IPv4 Address. . . . . . . . . . . : 10.0.75.1 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . :
0 2024-04-14
编程技术问答社区
无法从docker中运行asp.net 5
我遵循以下指南:在带Docker的Linux容器中运行ASP.NET 5应用程序,我无法在Windows PC或Linux Server上使用它.我的Dockerfile看起来像这样: FROM microsoft/aspnet COPY . /app WORKDIR /app RUN ["dnu", "restore"] EXPOSE 5000/tcp ENTRYPOINT ["dnx", "-p", "project.json", "web"] i然后运行docker build -t myapp .,然后docker run -d -p 80:5000 myapp它说它正在运行,但我无法在浏览器中打开网站.我知道在Windows上,您应该通过使用docker-machine ip default来找到实际的虚拟机正在违反的IP地址,该docker-machine ip default最终是192.168.99.100,但是当我导航到http://192.168.99.
2 2024-04-13
编程技术问答社区
asp.net core docker容器使用Oracle Managed Driver Core,打开连接时抛出ORA-00604和ORA-01882。
我在尝试使用oracle托管数据访问连接到Oracle数据库时会收到以下异常( https://www.nuget.org/packages/oracle.manageddataaccess.core/)来自docker容器.我没有在Docker之外收到例外 复制的步骤: 开放vs 2017 文件>新>项目... Visual C#> .NET Core> ASP.NET Core Web应用程序 单击确定 选择'Web应用程序(模型视图对照器)' 取消选中的'启用Docker支持' 取消选中的'https'配置' 单击确定 在软件包管理器中执行Install-Package Oracle.ManagedDataAccess.Core -Source nuget.org -Version 2.18.3 将代码粘贴到homecontroller.index方法 在行上设置断点con.Open(); 单击调试" II Express"按钮 试图打开连接时没
6 2024-04-13
编程技术问答社区
容器C#Winforms应用程序
我有一个独立的winform应用程序.可以在Docker中将其容器化. Docker支持基于UI的应用程序吗?我是否需要Docker来测试应用程序? 解决方案 是的,这是可能的.您将能够使用 https://hub.dock.docker.com/_/microsoft-dotnet-framework-runtime .基于UI的应用程序在.NET框架之上运行,因此得到了完全支持.但是,您能够与UI互动是一个不同的问题.您可以通过命令行或网络进行交互,而不是UI. 进行测试,如果您只是测试应用程序的工作原理,则可能不需要Docker,但是如果要测试容器化,则需要Docker才能进行桌面. 其他解决方案 不,您无法成功容纳需要GUI的Winforms应用程序,因为"容器不支持Graphic用户界面(GUI)" - 至少在编写此答复时(2023年7月). "容器不是等同于桌面应用程序虚拟化的解决方案.它们仅支持不需要交互式会话的服务器端应用程序.由于它们在专用容
4 2024-04-13
编程技术问答社区