【发布时间】:2019-08-13 18:14:44
【问题描述】:
我在 .Net Framework 中有两个独立的应用程序,一个是 .Net Core。我在 .Net 核心控制台应用程序中创建了一个服务总线发送器。它使用最新的Microsoft.Azure.Webjobs 和Microsoft.Azure.Webjobs.ServiceBus nuget 包向服务总线发送消息。这是发件人的示例代码。
var message = new Message(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(request)));
var client = new TopicClient(connectionString, TopicName);
await client.SendAsync(message);
用 .NET Framework 4.7 编写的另一个应用程序正在侦听相同的服务总线。它使用 nuget 包 Microsoft.Azure.Webjobs 和 Microsoft.Azure.Webjobs.ServiceBus 都是 .Net Framework 的 2.3.0 版。下面的示例代码。
public class ListenJob
{
public static void Listen([ServiceBusTrigger("%TopicName%", "%SubscriptionName%")] BrokeredMessage message)
{
var messageBody = message.GetBody<string>();
}
}
关于从 .Net 核心控制台应用程序发送消息。另一个应用程序能够检测到该消息,但我在侦听器中的行 var messageBody = message.GetBody<string>(); 上收到以下错误。
执行函数时出现异常: 应用 Microsoft.Azure.WebJobs.Host.FunctionInvocationException:异常 执行功能时: 应用---> System.Runtime.Serialization.SerializationException :有一个 反序列化 System.String 类型的对象时出错。输入源 格式不正确。 ---> System.Xml.XmlException:输入 源格式不正确。
【问题讨论】:
标签: c# .net-core azureservicebus brokeredmessage azure-webjobs-triggered