.NET プログラム用の Dockerfile を作成しました。このプログラムは、私のデスクトップと、Docker を使用しない Windows Server 2016 (Azure VM) で正常に動作します。内部でコンテナーとして実行しようとすると ( microsoft/windowsservercoreに基づく)、Azure SQL インスタンスに接続するときにデータベース エラーが発生することがよくあります。
2 つの Azure SQL インスタンスが実行されています (P1 と負荷なし)。接続を確立できる場合はかなり高速ですが、問題は接続を確立できないことが多いことです。ネットワークが非常に不安定なようです。これらは私に投げられる典型的なエラーです:
System.Data.SqlClient.SqlException: SQL Server への接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: 名前付きパイプ プロバイダー、エラー: 40 - SQL Server への接続を開けませんでした)
内部例外は、 The network path was not found を報告します。最初は自分のローカル マシンかもしれないと思っていましたが、Azure の Windows Server 2016 (コンテナーを使用) VM インスタンスにも問題があります。
問題を特定するために、5 秒ごとにデータベースに接続する (そして を実行するSELECT COUNT(*) from sysobjects
) テスト プログラムを作成しました。このプログラムは常にデータベースの検索に成功します。
私の他のプログラムは起動時に失敗することが多いようですが、初期化中にデータベース呼び出しがたくさんあります。スレッド化、接続プーリングなどで何かが違うのではないかと思います...
手がかりはありますか?