2

了解这是预发布 :)

当尝试QueueInput在 Azure WebJobs 中使用并在消息中粘贴哈希的十六进制字符串时。

public System.Guid GetOwner(CloudQueueMessage msg) 

看起来ilspy它似乎正在尝试解析,$AzureJobsParentId而 JSON 解析器正在抛出异常,我可以通过在 JSON 片段中编码我的哈希来解决它,但我不希望这样做。这是一个已知的错误?

4

1 回答 1

0

[QueueInput] 通常会使用 JSON.Net 将队列消息负载反序列化为参数类型。所以如果队列消息不是 JSON,你会得到一个异常(然后应该用更友好的东西包装)。

您还可以通过使用带有 [QueueInput] 的字符串参数来解决它,例如:

    public static void Function([QueueInput] string testqueue)
    {
    }

对于字符串参数,SDK 会直接为您提供 QueueMessage.AsString,无需任何 JSON 序列化。

仅供参考,$AzureJobsParentId 是放置在 json 有效负载上的特殊字段,用于标识哪个函数实例将消息排入队列。当您使用 [QueueOutput] 将消息排入队列时,将使用此功能。然后,您可以在 SDK 仪表板中查看该关系(http://blogs.msdn.com/b/jmstall/archive/2014/01/27/getting-a-dashboard-for-local-development-with-the-webjobs -sdk.aspx )

于 2014-02-11T17:28:41.940 回答