簡體   English   中英

無法從程序集'Microsoft.WindowsAzure.Storage,Version = 4.3.0.0加載類型'Microsoft.WindowsAzure.Storage.Blob.CloudAppendBlob'

[英]Could not load type 'Microsoft.WindowsAzure.Storage.Blob.CloudAppendBlob' from assembly 'Microsoft.WindowsAzure.Storage, Version=4.3.0.0

我正在Azure數據工廠中運行自定義活動,當我嘗試使用CloudAppendBlob時,會發生以下異常。 它看起來像版本問題,但無法找到解決方法。 我使用Windows Azure Storage 7.0.0編譯了代碼。 請幫忙!

模塊中的未知錯誤:

System.Reflection.TargetInvocationException:調用目標拋出了異常。 ---> System.TypeLoadException:無法從程序集“Microsoft.WindowsAzure.Storage,Version = 4.3.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”加載類型“Microsoft.WindowsAzure.Storage.Blob.CloudAppendBlob”。 at MyDotNetActivity.SampleActivity.Execute(IEnumerable 1 linkedServices, IEnumerable 1數據集,活動活動,IActivityLogger記錄器),位於Microsoft.Azure.Management.DataFactories.Runtime.ActivityExecutor.Execute(對象作業,字符串配置,Action`1 logAction)---內部異常堆棧跟蹤的結束---在System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj,Object []參數,Object []的System.RuntimeMethodHandle.InvokeMethod(Object target,Object []參數,Signature sig,Boolean構造函數)中在System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlags invokeAttr,Binder binder,Object []參數,CultureInfo文化)中的參數)在f:_Bld \\ 12752 \\ 4106中的Microsoft.DataPipeline.Compute.HDInsightJobExecution.ReflectingActivityWrapper.Execute() \\ Sources \\ Product \\ Common \\ Compute \\ src \\ HDIComputeDelegatorJob \\ ReflectingActivityWrapper.cs:第44行,位於f:_Bld \\ 12752 \\ 4106 \\ Sources \\ Produc中的Microsoft.DataPipeline.Compute.HDInsightJobExecution.JobWrapper.RunJob() t \\ Common \\ Compute \\ src \\ HDIComputeDelegatorJob \\ JobWrapper.cs:f:_Bld \\ 12752 \\ 4106 \\ Sources \\ Product \\ Common \\ Compute中的Microsoft.DataPipeline.Compute.HDInsightJobExecution.Launcher.Main(String [] args)中的第94行\\ src \\ HDIComputeDelegatorJob \\ Launcher.cs:第78行。

我自己遇到了同樣的問題。 原來,Azure Data Factory僅限於Microsoft.WindowsAzure.Storage的4.3版本。 要加載不同的版本,您應該查看Microsoft的CrossAppDomainDotNetActivitySample

從自述文件:

此示例允許您為ADF創建自定義.NET活動,該活動不受ADF啟動程序使用的程序集版本的限制(例如,WindowsAzure.Storage v4.3.0,Newtonsoft.Json v6.0.x等)。

該代碼包括一個實現app-domain隔離的抽象基類(CrossAppDomainDotNetActivity)和一個使用WindowsAzure.Storage v6.2.0演示的示例派生類(MyDotNetActivity)。

注意:ADF SDK公開的公共類型不能跨應用程序域邊界進行序列化。 因此,派生類必須提供預執行邏輯(PreExecute)以將ADF對象處理為可序列化對象,然后將其傳遞給核心邏輯(ExecuteCore)。

在app.config中,添加以下程序集綁定重定向

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

如果之后遇到其他類似問題,還要為這些程序集添加程序集綁定重定向。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM