viv*_*una 6 c# azure azure-storage asp.net-core azure-functions
我正在运行一个具有 Azure 功能的项目,但它没有运行我的 azure 功能。我已经设置了断点,它也没有达到断点。此外,输出不清楚,因此我可以调试我的代码。有什么方法可以调试代码以找到问题的根本原因吗?
输出:
[3/20/2018 9:39:31 AM] 读取主机配置文件 'C:\Users\myname\Source\MyProject\aspnet-core\src\Nec.MyProject.Processors\bin\Debug\netstandard2.0\host .json' [3/20/2018 9:39:31 AM] 主机配置文件读取:[3/20/2018 9:39:31 AM] { [3/20/2018 9:39:31 AM] "queues ": { [3/20/2018 9:39:31 AM] "maxPollingInterval": 1000, [3/20/2018 9:39:31 AM]
"visibilityTimeout": "00:00:00", [3/ 20/2018 9:39:31 上午]
"batchSize": 1, [3/20/2018 9:39:31 AM] "maxDequeueCount": 5 [3/20/2018 9:39:31 AM] } [3/20/2018 9:39:31 AM] ] } [3/20/2018 9:39:48 AM] 生成 15 个作业函数 [3/20/2018 9:39:48 AM] 启动主机 (HostId=windowsmyname-655615619, Version=2.0.11415.0, ProcessId=6320, Debug=False, ConsecutiveErrors=0, StartupCount=1, FunctionsExtensionVersion=) [3/20/2018 9:39:49 AM] 发现以下函数:[3/20/2018 9:39:49 AM] MyCompany.MyProject.Processors.BackOfficeFilesGeneratorJobs.RunTestGeneratorAsync [3/20/2018 9:39:49 AM] [3/20/2018 9:39:49 AM] 工作主机开始监听http://localhost:7071/ 按CTRL -C 退出... [3/20/2018 9:39:50 AM] 实例 ID '0000000000000000000000000C78D3496' 获取主机锁租约。
天蓝色功能:
[FunctionName("GenerateTestOfficeMasterDataFiles")]
public static async Task RunTestGeneratorAsync(
[QueueTrigger("%MasterDataFiles:Supplier:QueueName%", Connection = "ConnectionStrings:BlobStorageAccount")] BackOfficeFileGeneratorMessage<string> message,
ExecutionContext context,
TraceWriter log)
Run Code Online (Sandbox Code Playgroud)
注意:当它BackOfficeFileGeneratorMessage
代替BackOfficeFileGeneratorMessage<string>
.
更新:
public class BackOfficeFileGeneratorMessage<TEntityKey>
{
public BackOfficeFileGeneratorMessage()
{
Items = new MasterDataFileOperationItem <TEntityKey>[0];
}
public bool UseStaging { get; set; }
public string StoreNo { get; set; }
public bool RefreshAll { get; set; }
public IEnumerable<MasterDataFileOperationItem <TEntityKey>> Items { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Functions 运行时使用特定于函数应用程序的唯一 ID 获取附加到函数应用程序的存储帐户的租用。这是一个内部实现细节。
只要队列触发器数据与 POCO 匹配,反序列化为通用类型就应该有效。例如,这里是泛型类型
public class GenericInput<T>
{
public T OrderId { get; set; }
public T CustomerName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和函数
public static void ProcessQueueMessage([QueueTrigger("queuea")] GenericInput<string> message, TextWriter log)
{
log.WriteLine(message);
}
Run Code Online (Sandbox Code Playgroud)
队列数据示例
{
"OrderId" : 1,
"CustomerName" : "john"
}
Run Code Online (Sandbox Code Playgroud)
如果队列数据无法序列化为预期的 GenericType,您将收到序列化错误。例如,以下函数尝试处理错误队列输入时将失败:函数:
public static void ProcessQueueMessage([QueueTrigger("queuea")] GenericInput<int> message, TextWriter log)
{
log.WriteLine(message);
}
Run Code Online (Sandbox Code Playgroud)
错误的输入:
{
"OrderId" : 1,
"CustomerName" : "cannot covert string to number"
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10695 次 |
最近记录: |