我收到错误消息“无法加载一个或多个请求的类型。检索LoaderExceptions属性以获取更多信息'显示在Func.exe命令提示符内。
当我评论除了具有Table Entity子类的代码之外的所有代码时,我发现了。这就是代码给我一个例外。
public class RollCallHistoryEntity : TableEntity
{
public RollCallHistoryEntity() { }
public RollCallHistoryEntity(RollCallTransaction transaction)
{
this.PartitionKey = Convert.ToString(transaction.OrgId);
this.RowKey = Guid.NewGuid().ToString();
this.OrgId = transaction.OrgId;
this.AttendanceId = transaction.AttendanceId;
this.ActionId = transaction.ActionId;
this.HappenedOn = transaction.HappenedOn;
public static class Function1
{
[FunctionName("Function1")]
public static async Task Run([QueueTrigger("queue-trigger", Connection = "tuxdev_STORAGE")]string myQueueItem, TraceWriter log)
{
log.Info($"C# Queue trigger function processed: {myQueueItem}");
var queueItem = JsonConvert.DeserializeObject<RollCallTransaction>(myQueueItem);
//var historyTable = await Azure.AzureTable.GetTable(Azure.AzureTable.TABLE_ROLLCALL_HISTORY);
//var historyEntity = new Azure.Entity.RollCallHistoryEntity(queueItem);
}
}
不要担心RollCallProcessor,这是我的旧项目。我用上面的代码重新创建了一个新项目,但仍然遇到了同样的问题。
答案 0 :(得分:1)
有没有办法查看LoaderException堆栈跟踪。
您可以使用StackTrace类来跟踪项目中的异常。
或者您可以检索ReflectionTypeLoadException.LoaderException属性以获取有关LoaderException的更多信息。
在Code中抓住例外:
try
{
// load the assembly or type
}
catch (Exception ex)
{
if (ex is System.Reflection.ReflectionTypeLoadException)
{
var typeLoadException = ex as ReflectionTypeLoadException;
var loaderExceptions = typeLoadException.LoaderExceptions;
}
}
目前,在项目的属性下,应用程序 - &gt;目标框架在.netStandard 2.0中运行
触发器类型中的某些功能可用于 Azure功能v2预览模板:
例如,BlobTrigger在v2中支持fine。您可以尝试操作azure存储。
创建Azure功能v2预览:
创建BlobTrigger:
BlobTrigger中的代码:
public static class Function1
{
[FunctionName("Function1")]
public static void Run([BlobTrigger("helloworld/{name}", Connection = "AzureWebJobsStorage")]Stream myBlob, string name, TraceWriter log)
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
"storage account connection string");
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("helloworld");
CloudAppendBlob blob = container.GetAppendBlobReference("log2.txt");
using (var fileStream = System.IO.File.OpenRead(@"D:\log.txt"))
{
blob.UploadFromStreamAsync(fileStream);
}
log.Info($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
}
}
BlobTrigger中的结果:
因此,您最好选择兼容的平台版本。更多详情请参阅此article。
Azure Functions runtime 2.0处于预览状态,目前尚未支持Azure功能的所有功能。