所以我试图从 SharePoint webpart 向端点发送一条简单的消息。现在,我将总线设置在 webpart 中使用的简单静态类中。该类被调用并且总线似乎正在工作,但是当我尝试发送消息时,我得到:
没有为消息 SharePointMessages.CreateProject 指定目标。无法发送消息。检查配置文件中的 UnicastBusConfig 部分并确保消息类型存在 MessageEndpointMapping。
该类如下所示:
public static class Infrastructure
{
public static IBus Bus { get; private set; }
static Infrastructure()
{
var mappings = new MessageEndpointMappingCollection();
mappings.Add(new MessageEndpointMapping()
{
Messages = "SharePointMessages.CreateProject",
Endpoint = "SharePointProxy"
});
Configure config = Configure.WithWeb();
config
.Log4Net()
.DefaultBuilder()
.XmlSerializer()
.MsmqTransport()
.IsTransactional(true)
.UnicastBus()
.Configurer.ConfigureComponent<UnicastBusConfig>(ComponentCallModelEnum.None)
.ConfigureProperty(x => x.MessageEndpointMappings, mappings);
Bus = config.CreateBus().Start();
}
}
SharePointMessages.CreateProject 类实现 IMessage 并具有两个属性。如果队列不存在,则会正确创建队列。所以看起来一切正常,但由于某种原因,映射不存在。谁能看到我做错了什么?
干杯