2

我目前正在使用 NServiceBus6。我成功地从我的 web api 向托管 Windows 服务的端点提交了一条消息。在我的本地机器上的开发环境中一切正常。我在所有端点配置中都使用“NewtonsoftSerializer”。我现在已将我的解决方案部署到服务器。我的服务现在托管为窗口服务,而不是控制台应用程序。Service Insight 现在报告 NServiceBusDeserialization 异常:

尝试从传输消息 8221d498-81ca-406e-8ab6-a77701065f1f 提取逻辑消息时出错 ---> System.Xml.XmlException:根级别的数据无效。第 1 行,位置 1。

有几个项目突出。A. 我没有使用 XmlSerialization。B. 我在开发环境中没有序列化问题。我将不胜感激提供的任何帮助,谢谢。

留言类:

 public class CreateSearchRequest : ICommand
{
    public SearchRequest Request { get; set; }
}

搜索请求:

 public class SearchRequest : Resource
{
    public string User { get; set; }
    public string SearchName { get; set; }
    public SearchCriteriaSimple Criteria { get; set; }
    public string Status { get; set; }
    public DateTime RequestBegin { get; set; }
    public DateTime RequestEnd { get; set; }
    public int Records { get; set; }
    public string OutputFileName { get; set; }
    public string FtpLocation { get; set; }
    public DateTime CreateDate { get; set; }
}

搜索请求简单:

 public class SearchCriteriaSimple
{
    public string Name { get; set; }
    public List<Dictionary<string, string>> Criteria { get; set; }
}

资源:Azure DocumentDbResource 类

4

1 回答 1

0

我不好意思说。但我已经弄清楚了这个问题。在 Visual Studio 的开发过程中,我在 ProgramService.cs 的 Task AsyncOnStart() 方法中配置了端点。似乎一旦我安装了 NServiceBus 主机,我还必须通过 Endpoint Config 提供配置。一旦我匹配序列化,问题就消失了。

于 2017-06-08T04:53:03.023 回答