var message = new BrokeredMessage(exception);
outputMessages.Add(message);
public class MyException : Exception{
public MyException(){}
public MyException(string message) : base(message){}
public MyException(string message, Exception inner) : base(message, inner){}
protected MyException(SerializationInfo info, StreamingContext context) : base(info, context){}
public object MyProp { get; set; }
}
但是,我得到以下例外情况:
Microsoft.Azure.WebJobs.Host.FunctionInvocationException:执行函数时发生异常:Functions.ProcessQueueMessage2Async---->System.Runtime.Serialization.InvalidDataContractException:无法序列化类型“MyException”。请考虑使用DataContractAttribute属性标记它,并使用DataMemberAttribute属性标记希望序列化的所有成员。如果类型是集合,请考虑使用CollectionDataContractAttribute标记它。有关其他受支持的类型,请参阅Microsoft.NET Framework文档。
当我用[DataContract]
标记MyException
时,我得到的结果是:
Microsoft.Azure.WebJobs.Host.FunctionInvocationException:执行函数时发生异常:Functions.ProcessQueueMessage2Async---->System.Runtime.Serialization.InvalidDataContractException:类型“MyException”不能是ISerializable并且具有DataContractAttribute属性。
可能是因为System.Exception
实现了ISerializable
。我该怎么解决呢?
您将无法使用DataContractSerializer
序列化异常。即使您成功地用DataContract
标记了类,内部异常也可能是任何类型的,因此不兼容。
因此您有两种选择:
>
用另一个序列化程序序列化您的异常(然后将stream
传递给brokeredmessage
构造函数)。部分选项请参阅本题。
我一直在尝试创建一个客户端来连接我的Azure服务总线队列。我一直在参考此文档: https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-java-how-to-use-queues#send-消息到队列。 我的代码: 在创建客户端时,我遇到以下错误: 通用域名格式。微软蔚蓝色的服务总线。原语。Service
我使用此url中的示例http://azure.microsoft.com/en-us/documentation/articles/service-bus-java-how-to-use-jms-api-amqp/.我有两个问题: 1、ACS或SAS 连接URL, 用户名和密码来自ACS身份验证,但Azure服务总线已将其身份验证从ACS更改为SAS。它是否也支持SAS身份验证?就像用户名是SA
我正在使用azure服务总线主题和订阅机制,并希望处理所有在死信队列中的消息。 此外,我想通过C#中的Azure Web作业处理消息,并将其发送回队列。所以我想知道如何通过我的应用程序处理死信队列上的消息?
我有一个服务总线Q,从Azure门户可以或多或少地看到服务总线Q包含多少条目。如何使用他们的管理API获取此计数?我仔细阅读了文档,但没有找到答案。
今天晚上,我们观察到排队时间非常慢。我们的追踪数据告诉我们 需要45-60秒。这种情况发生在两个已经存在很长时间的队列上。他们几乎从来没有超过1-2条记录,我们使用一个带有服务总线触发器的网络作业来完成任务。我们正在排队等候一个简单的POCO。还有另一个队列正在快速排队,所以由于没有任何其他想法,我删除了两个麻烦的队列。当代码重新创建它们时(正如它被构建时所做的那样),它们在不到一秒钟的时间里开始
我有一个WCF服务,它连接到一个服务总线队列,准备接收消息。这是工作很好,但我希望能够标记的消息作为一个死信,如果我有一个问题处理的消息。当前,如果我的代码抛出异常,消息仍然会从队列中删除,但我希望能够在配置中指定不从队列中删除,但将其标记为死信。我做了一些搜索,但我不知道怎么做。我当前正在将该服务作为windows服务运行 Uri baseAddress=ServiceBusEnvironmen