第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 docker 容器中連接到 SQL Server 時出錯

在 docker 容器中連接到 SQL Server 時出錯

C#
阿波羅的戰(zhàn)車 2022-11-21 21:32:41
我有一個在 Windows Docker 容器中運行的 ASP.NET Core WebAPI。我在從應用程序內(nèi)部連接到本地 SQL 實例時遇到問題。這是錯誤消息:(0x80131904):建立與 SQL Server 的連接時發(fā)生了與網(wǎng)絡(luò)相關(guān)或特定于實例的錯誤。服務器未找到或無法訪問。驗證實例名稱是否正確以及 SQL Server 是否配置為允許遠程連接。(提供程序:命名管道提供程序,錯誤:40 - 無法打開與 SQL Server 的連接)---> System.ComponentModel.Win32Exception (53): 找不到網(wǎng)絡(luò)路徑我在 github 上發(fā)現(xiàn)了這個問題,但它并不真正適用于我的情況。我可以通過將實例名稱替換為服務器本地 IP 地址來使一切正常,如下所示:"ConnectionString_ThrowingError": "Data Source=MySqlInstance; (...)" "ConnectionString_WorkingFine":   "Data Source=192.168.0.123; (...)"這里發(fā)生了什么?.NET 似乎無法解析域計算機主機名。其他詳情使用.Net Core 2.2在 Windows 上使用 Docker Windows 容器Windows 10嘗試在和上托管Windows Server 2019。兩者都有完全相同的錯誤。我可以ping使用其主機名或本地 IP 從容器內(nèi)部獲取 SQL 實例。當我用連接字符串中的本地 IP 地址替換實例名稱時,一切正常。如果我在 .NET CLI 中運行應用程序(不使用 Docker),一切正常我嘗試訪問的 SQL 實例未托管在 Docker 上。它托管在同一本地網(wǎng)絡(luò)上的另一臺 Windows 服務器上。我可以DataSource=MyAzureServer.database.windows.net毫無問題地使用 Azure 上托管的其他 SQL 實例。
查看完整描述

3 回答

?
慕桂英546537

TA貢獻1848條經(jīng)驗 獲得超10個贊

根據(jù)我在評論中的建議,如果服務器名稱不是完全限定的域名 (FQDN),則在將服務器解析為 IP 時可能會出現(xiàn)問題。

嘗試將服務器名稱調(diào)整為 FQDN,希望這樣可以解決問題。

如果做不到這一點,請查看諸如這個鏈接以從 SQL Server 的角度計算名稱解析,您將獲得一些關(guān)于如何解決此類問題的其他想法。


查看完整回答
反對 回復 2022-11-21
?
qq_遁去的一_1

TA貢獻1725條經(jīng)驗 獲得超8個贊

檢查這個 docker-composer.yaml,網(wǎng)絡(luò)和別名部分很重要,上面的設(shè)置可以用 docker 命令而不是 yaml 生成。


    version: '3.4'


    services:

      some.api:

        image: ${DOCKER_REGISTRY-}someapi

        container_name: some.api

        build:

          context: .

          dockerfile: /Dockerfile

        ports:

          - "40080:80"

          - "44443:443"

        networks:

        - database

      some.db:

        image: microsoft/mssql-server-linux:2017-latest

        container_name: mssql1

        networks:

          database:

            aliases:

              - mssql1

        environment:

          - SA_PASSWORD=Pass@word

          - ACCEPT_EULA=Y

        ports:

          - "5454:1433"

    networks:

  database:

網(wǎng)絡(luò)被定義為從另一個訪問容器。

別名用于命名資源,對于上面的代碼片段,連接字符串是:

Server=mssql1;Database=whatever_is_need;User Id=sa;Password=Pass@word;


查看完整回答
反對 回復 2022-11-21
?
小唯快跑啊

TA貢獻1863條經(jīng)驗 獲得超2個贊

我和你有同樣的問題。連接字符串中的服務器名稱和容器名稱應該相同。



查看完整回答
反對 回復 2022-11-21
  • 3 回答
  • 0 關(guān)注
  • 393 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號