为什么会收到 SSIS 脚本任务错误 Azure Blob 存储 - 调用目标引发异常



使用 SSIS 脚本任务与 Azure Blob 存储通信时,以下代码不会运行,它会生成正常,并将在控制台应用中运行! 任何人都可以提供有关出错情况的任何见解,因为SSIS或事件日志中除了此错误消息之外没有其他错误消息。

命名空间:

using System;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Auth;
using Microsoft.WindowsAzure.Storage.Blob;
using System.Linq;

法典:

string AccountName = Dts.Variables["User::AccountName"].Value.ToString();
string AccountKey = Dts.Variables["User::AccountKey"].Value.ToString();
try
{
StorageCredentials storageCredentials = new StorageCredentials(AccountName, AccountKey);
CloudStorageAccount cloudStorageAccount = new CloudStorageAccount(storageCredentials, useHttps: true);
CloudBlobClient BlobClient = cloudStorageAccount.CreateCloudBlobClient();
CloudBlobContainer Container = BlobClient.GetContainerReference("deltapocstorage");
CloudBlobDirectory blobDirectory = Container.GetDirectoryReference("instance1/");
CloudBlockBlob latestBlob = blobDirectory.ListBlobs()
.OfType<CloudBlockBlob>()
.OrderByDescending(m => m.Properties.LastModified)
.ToList()
.FirstOrDefault();
DateTimeOffset lastModifiedDate = new DateTimeOffset();
if (latestBlob != null)
{
lastModifiedDate = latestBlob.Properties.LastModified.GetValueOrDefault();
Dts.Variables["User::MostRecentRecord"].Value = lastModifiedDate.AddMilliseconds(1).ToString("dd/MM/yyyy HH:mm:ss.fff");
}
Dts.TaskResult = (int)ScriptResults.Success;
}
catch
{
Dts.TaskResult = (int)ScriptResults.Failure;
}

任何想法将不胜感激,

问候 安东尼

看起来问题与 Microsoft.WindowsAzure.Storage.dll 程序集有关,而不是位于全局程序集缓存 (GAC( 中。 使用 添加程序集

gacutil.exe /i "C:Program FilesMicrosoft SDKsAzure.NET SDKv2.9binpluginsDiagnosticsMicrosoft.WindowsAzure.Storage.dll"

剧本奏效了。 一旦我解决了这个问题,确保加载程序集的更好方法是遵循大卫布朗的这篇文章 如何在 SSIS 脚本任务中加载程序集

最新更新