【问题标题】:WCF customheader or messagebody for context?用于上下文的 WCF 自定义标头或消息正文?
【发布时间】:2008-09-26 14:25:03
【问题描述】:

我知道 WCF 服务可以让客户将零件信息发送到我们的应用程序。我们有多个客户,他们将拥有一个或多个位置,并且零件信息的范围仅限于客户的每个位置。当客户致电我们的服务时,他们需要指定位置。

我们考虑过的选项是:

1) 在自定义标头中放置位置 ID。所有零件信息将适用于列出的所有位置。

2) 向消息正文添加“上下文”节点。所有零件信息将适用于列出的所有位置。

3) 在消息正文中添加一个包含部件信息的位置节点。每个位置都有自己的零件清单。

我正在寻找最佳做法/标准帮助来确定应如何处理。我们将不得不创建具有客户/位置范围的其他服务,并希望以一致的方式处理此问题。

【问题讨论】:

    标签: c# wcf


    【解决方案1】:

    我会说,如果只有一两个操作需要它,请将其作为数据协定的一部分 - 有点像将其作为方法调用的参数。如果每个操作都需要它,请将其放在标头中,因为它与用户名、角色、租户或其他身份验证信息一样多的上下文 - 有点像您放在请求上下文中的内容(例如,HttpContext)。

    【讨论】:

      【解决方案2】:

      你需要使用消息合约吗?我使用数据合约,除非我需要流回一些东西,所以一切都只是在正文中结束。但是,即使对于消息合约,我也会将该信息放在正文中,我倾向于保留标头用于身份验证信息。

      【讨论】:

        【解决方案3】:

        我们计划发送回复,其中包含处理摘要信息以及有关任何无法处理的部分的详细信息。

        消息合约有一个部分的集合,这些部分是在数据合约中定义的。消息合约中还有一个标志来控制部件集合的处理。这可能是也可能不是这个标志的正确位置。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-07
          • 2019-05-05
          • 1970-01-01
          • 2012-02-16
          相关资源
          最近更新 更多