我已經實現了TimeTriggerC#Azure函數以運行存儲過程插入使用列加密進行加密的表(始終加密,AzureKey保險庫作爲提供商)密鑰存儲提供程序不能設置多次(始終使用Azure功能加密)
對我來說,阻塞區域是我的函數在1次成功運行並且再次出錯多次。所以我得到的成功之路是一種罕見的情況下
我遇到的錯誤是
mscorlib程序:異常已通過調用的目標引發異常。 System.Data:密鑰存儲提供程序不能設置多次。
我做了這方面的一些研究它發生在該行
SqlConnection.RegisterColumnEncryptionKeyStoreProviders(providers);
隨着功能
static void InitializeAzureKeyVaultProvider()
{
string clientId = ConfigurationManager.AppSettings["AuthClientId"];
string clientSecret = ConfigurationManager.AppSettings["AuthClientSecret"];
_clientCredential = new ClientCredential(clientId, clientSecret);
// Direct the provider to the authentication delegate
SqlColumnEncryptionAzureKeyVaultProvider azureKeyVaultProvider = new SqlColumnEncryptionAzureKeyVaultProvider(GetToken);
Dictionary<string, SqlColumnEncryptionKeyStoreProvider> providers = new Dictionary<string, SqlColumnEncryptionKeyStoreProvider>();
providers.Add(SqlColumnEncryptionAzureKeyVaultProvider.ProviderName, azureKeyVaultProvider);
// register the provider with ADO.net
SqlConnection.RegisterColumnEncryptionKeyStoreProviders(providers);
}
當我試圖看起來更深入錯誤的根本原因,它會像
異常已被目標引發調用。 ---> System.InvalidOperationException:密鑰存儲提供程序不能多次設置爲 。在 System.Data.SqlClient.SqlConnection.RegisterColumnEncryptionKeyStoreProviders(IDictionary`2 customProviders)
正如我上面提到我以前Azure的主要跳馬我的密鑰存儲Provider.I正確註冊我的AD Keyvault並添加已註冊的應用程序到我的密鑰保管庫(訪問策略)。
爲什麼我面對這種不正常的行爲,像一次性成功和另一次失敗?
感謝您迴應,
Jayendran
你在哪裏調用'InitializeAzureKeyVaultProvider()'方法? 它從錯誤消息中看出您不止一次這樣做。 – Max