簡體   English   中英

支持 Docker 的 ASP.NET Core:連接被拒絕

[英]ASP.NET Core with Docker support: Connection refused

我有一個支持 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;
}

但是當我嘗試連接到創建的 Oracle DB 容器的數據庫時,出現以下異常:

System.Net.Internals.SocketExceptionFactory+ExtendedSocketException(連接被拒絕 127.0.0.1:1521)

我還嘗試在我的 docker-compose 文件中包含depends_on 和networks 選項,結果相同。

導致此異常的原因可能是什么?
我該如何解決這個問題?

從容器內,你能把這個命令的輸出發送給我嗎?

apt-get update && apt-get install nmap -y && nmap -p 1521 localhost

如果您不熟悉如何在容器內訪問 bash,請執行以下操作:

找到您的容器 ID 或名稱: docker ps連接到 BASH: docker exec -it >containerID< /bin/bash

我有一種感覺,他的問題與 Oracle 而不是 Docker 有關,因為您的 docker-compose 文件看起來是正確的。 也許偵聽器尚未啟用。 我也很感激輸出: lsnrctl status if nmap說端口沒有open

https://docs.oracle.com/cd/E11882_01/network.112/e41945/listenercfg.htm#NETAG010

我在我的 mac 上遇到了同樣的問題。 我使用> 9000的端口解決了它。

只需添加SslMode=None; 在您的連接字符串中

  "ConnectionStrings": {
    "DefaultConnection": "Server=db-host; Database=db-name; Uid=db-user; Pwd=db-pwd; SslMode=None;"
  },

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM