如何在Azure SDK 2.0中使用CloudFX?

时间:2013-06-08 19:42:17

标签: c# .net azure cloudfx

因此,我将CloudFX与Azure的SDK 2.0结合使用。当我在控制台App中在Azure环境(云或模拟器)之外运行我的工作角色时,一切顺利。

当我尝试使用模拟器或云时,我收到了包含此信息的AggregateException:

{"The type initializer for 'Microsoft.Experience.CloudFx.Framework.Diagnostics.TraceManager' threw an exception."}
Could not load file or assembly 'Microsoft.WindowsAzure.Diagnostics, Version=1.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
   at Microsoft.Experience.CloudFx.Framework.Diagnostics.HybridTraceEventProvider..ctor(String providerName, Guid providerGuid)
   at Microsoft.Experience.CloudFx.Framework.Diagnostics.TraceManager.<>c__DisplayClass1.<Create>b__0(Guid guid)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at Microsoft.Experience.CloudFx.Framework.Diagnostics.TraceManager.Create(String providerName, Guid providerGuid)
   at Microsoft.Experience.CloudFx.Framework.Diagnostics.TraceManager..cctor()

所以我试图让这个程序集重定向但没有成功:

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

似乎CloudFX仍然限制/引用SDK 1.8。有谁能帮助我们解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

在MSFT人员Valery的帮助下,我能够通过仔细检查我的配置来解决这个问题,确保没有任何指向版本1.8.0.0并且我添加了assemblyBinding重定向配置。

虽然我们没有支持Azure SDK 2.0的新版CloudFX版本,但您需要做的只是在runtime/assemblyBinding/部分的重定向配置中手动添加:

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

Azure特定的跟踪侦听器名为AzureDiagnostics,明确指向Microsoft.WindowsAzure.Diagnostics version = 2.0.0.0

有了它,您应该能够将CloudFX与Azure SDK 2.0一起使用。