1

私はいくつかの暗号化された列を持つテーブルを持っています。データベースとWebアプリケーションはどちらもAzureでホストされています。 Webアプリケーションをローカルで実行すると、コードは正常に動作し、復号化されたデータは期待どおりにテーブルから取得されます。しかし、AzureにWebアプリケーションを公開すると、アプリケーションが暗号化されたテーブルからの読み取りを試みるとタイムアウトに陥ります。暗号化キーは、Azure Key Vaultに格納されます。私はエンティティフレームワークを使用している "列暗号化設定= Enabled"接続文字列で設定します。暗号化されたSQL Serverは常にAzureで2016回タイムアウトします

アイデア?

+0

任意のアイデア?ええ、[測定](http://rusanu.com/2014/02/24/how-to-analyse-sql-server-performance/)ここで、時間は費やされます。問題を切り分けてください。それはまた、暗号化なしで起こるか?あなたはAzure [Query Performance Insight](https://docs.microsoft.com/en-us/azure/sql-database/sql-database-query-performance)からの警告を見ましたか? –

+0

暗号化なしでは起こりません。それはテーブルの残りの部分でも起こりません。ちょうど暗号化されたもの。 –

答えて

0

どのバージョンのAzure Key Vault Providerをお使いですか?アズールキーVaultのプロバイダの

古いバージョンは、あなたがlatest version

+0

こんにちは。私はAKVプロバイダの最新バージョンを使用していましたが、Microsoft.IdentityModel.Clients.ActiveDirectory名前空間のAcquireTokenAsyncメソッドがデッドロックを引き起こしていたようです。問題は、私は非同期を使用していない/すべての方法を待っている。 SQLConnectionの暗号化キーストアプロバイダに追加しているオーバーライドされたSqlColumnEncryptionKeyStoreProviderクラスでこれを呼び出すので、これを行う方法はわかりません。 ActiveDirectory dllをAcquireTokenメソッド(非同期ではない)を持つ古いバージョンにダウングレードすると、今のところ私の問題が解決されました。 –

3

Microsoft.IdentityModel.Clients.ActiveDirectory dllファイルの最新バージョンが判明(3.Xに、プロバイダをアップグレードしてみてくださいすることができ、この問題を引き起こすことが知られています)は、非同期呼び出しにはあまり効果がありません。 AcquireTokenAsyncメソッドは常にタイムアウトしていました。

私はdllの2.Xバージョンにロールバックし、今は正常に動作します。最初は、AcquireToken(非同期)メソッドを使用していましたが、Asyncメソッドも試してみると、それも機能することがわかりました。どうやら、問題はDLL全体にありました。トピックの

より: https://github.com/Azure/azure-sdk-for-net/issues/1432

関連する問題