2016-01-19 25 views
1

我們正在使用azure密鑰保管庫來保護我們的azure存儲blob加密。 This是我遵循的教程,以使其發揮作用。對於某些項目,Windows Azure密鑰保管庫廣告身份驗證失敗

我開發了一個示例應用程序和用於加密blob的包裝庫。它在示例應用程序中運行良好。但在引用包裝項目後的實際軟件,當應用程序請求發生異常的原因,

private async Task<string> GetToken(string authority, string resource, string scope) 
    { 
     var authContext = new AuthenticationContext(authority); 

     ClientCredential clientCred = new ClientCredential(ADClientID, ADClientSecret); 
     AuthenticationResult result = await authContext.AcquireTokenAsync(resource, clientCred); 

     if (result == null) 
      throw new InvalidOperationException("Failed to obtain the JWT token"); 

     return result.AccessToken; 
    } 

在上面的代碼在該行

 var authContext = new AuthenticationContext(authority); 

返回唯一的例外是

InnerException = {"Couldn't find type for class Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=2.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35."} 

我在做什麼錯了?

+0

http://stackoverflow.com/questions/20885343/how-to-solve-windows-azure-diagnostic-runtime-error-could-not-create-windowsazu/20910827#20910827。它有幫助嗎? – RazvanR

回答

2

通過使用配置TraceSource「Microsoft.IdentityModel.Clients.ActiveDirectory」寫跟蹤信息默認ADAL庫:https://github.com/AzureAD/azure-activedirectory-library-for-dotnet/blob/51ddc653029a7b3949eb738afbec40dfb30ed6bb/src/ADAL.NET/AdalTrace.cs

更多信息如何配置跟蹤見https://github.com/AzureAD/azure-activedirectory-library-for-dotnet/blob/51ddc653029a7b3949eb738afbec40dfb30ed6bb/README.md

我的假設你的web.config有一個跟蹤偵聽器指向過時的Microsoft.WindowsAzure.Diagnostics。基於Azure .NET SDK的版本安裝使用適當的版本 - 最新的一個是2.8.0.0。您還可以使用程序集綁定重定向來強制加載特定版本。

<dependentAssembly> 
    <assemblyIdentity name="Microsoft.WindowsAzure.Diagnostics" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="0.0.0.0-2.8.0.0" newVersion="2.8.0.0" /> 
</dependentAssembly>