我在.Net Framework中有两个单独的应用程序,一个是.Net Core,另一个是.Net Core 。我在 .Net 核心控制台应用程序中创建了一个服务总线发送器。它使用最新和nuget 包向服务总线发送消息。这是发件人的示例代码。Microsoft.Azure.Webjobs
Microsoft.Azure.Webjobs.ServiceBus
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>();
在侦听器中在线收到以下错误。
执行函数时出现异常:Applications Microsoft.Azure.WebJobs.Host.FunctionInvocationException:执行函数时出现异常:Applications ---> System.Runtime.Serialization.SerializationException:反序列化 System.String 类型的对象时出错。输入源的格式不正确。---> System.Xml.XmlException : 输入源格式不正确。