支持Docker的ASP.NET Core:拒绝连接
我有一个支持Docker的ASP .NET Core(v2.0)应用程序。 我想在启动我的应用程序时启动一个Oracle数据库。 这是我的docker-compose文件的样子:
version: '3' services: devarttestapp: image: devarttestapp build: context: ./DevartTestApp dockerfile: Dockerfile oracledb: image: sath89/oracle-12c ports: - "1521:1521"
我使用Devart数据提供程序dotConnect for Oracle。
var conn = new Devart.Data.Oracle.OracleConnection(); conn.ConnectionString = Environment.GetEnvironmentVariable("ORACLE_CONNECTION_STRING"); try { conn.Open(); } catch (Exception e) { Console.WriteLine(e); throw; }
但是,当我尝试连接到创build的Oracle数据库容器的数据库时,我得到以下exception:
System.Net.Internals.SocketExceptionFactory + ExtendedSocketException(连接被拒绝127.0.0.1:1521)
我也尝试在我的docker-compose文件中包含depends_on以及networking选项,并得到相同的结果。
什么可能是这个例外的原因?
我该如何解决这个问题?
从容器内部,你能发送这个命令的输出吗?
apt-get update && apt-get install nmap -y && nmap -p 1521 localhost
如果您不熟悉如何访问容器内的bash,那么这是如何:
查找您的容器ID或名称: docker ps
连接到BASH: docker exec -it >containerID< /bin/bash
我有一个感觉,他的问题属于甲骨文,而不是docker,因为你的docker合成文件看起来是正确的。 也许听众还没有启用。 如果nmap
说端口没有open
话,我也会喜欢lsnrctl status
的输出。
https://docs.oracle.com/cd/E11882_01/network.112/e41945/listenercfg.htm#NETAG010
我在我的Mac上遇到同样的问题。 我用> 9000的端口解决了它。
- .NET Core 1.1,Docker Build遇到无法用csprojfind'project.json'
- docker端口不可访问
- 无法连接到运行在docker上的.net核心应用程序的SQL Server Express
- 只是因为一个程序有一个graphics用户界面是否意味着它会崩溃在Windows泊坞窗?
- 错误必须提供“ClientId”选项。 当build立一个docker形象
- .Net – 将日志从Web应用程序推送到运行Fluentd的Docker容器
- 如何在使用Dockerfile构build时解决错误“没有这样的文件或目录”错误
- .NET核心getstringasync在Docker中不起作用
- 如何在Docker容器中保持.NET Core控制台应用程序活着