我有两个独立的应用程序,一个是 .Net Core ,另一个是在 .Net Framework 中。我已经在.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中编写的另一个应用程序正在侦听同一服务总线。它正在使用.net Framework的2.3.0版本的nuget软件包Microsoft.Azure.Webjobs
和Microsoft.Azure.Webjobs.ServiceBus
。下面的示例代码。
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:输入 来源格式不正确。