代码之家  ›  专栏  ›  技术社区  ›  SamStephens SQL.injection

以编程方式验证Web引用是否与.NET 3.5中的端点匹配

  •  1
  • SamStephens SQL.injection  · 技术社区  · 15 年前

    我遇到了一个不幸的情况,即我需要使用没有按照常规SOA实践定义契约的web服务。这意味着我需要防止web服务中的更改破坏我的web引用。在过去,新web服务版本中的突破性更改(如枚举值的更改)导致了难以调试的失败。

    我正在使用Web引用访问Web服务。我主要是在消耗ASMX端点。

    防止破坏性更改的明智方法似乎是检查每个web服务的端点,确保为服务定义的WSDL与当前端点模式匹配。我希望在构建时这样做,也可能在应用程序启动时这样做。最好只在中断更改时检查失败,这意味着向端点模式添加新元素是可以的。

    一种方法是从端点生成一个临时WSDL,并验证现有WSDL中的每个XML元素都包含在临时WSDL中。但这似乎很棘手,我想知道是否有现有的工具,或更好的方法来做到这一点。

    1 回复  |  直到 15 年前
        1
  •  0
  •   Community CDub    8 年前

    检查 this question -有人提出同样的要求。请注意,服务兼容性是一个棘手的问题,即使是比较WSDL也只意味着您要防范语法上的变化。无法检测服务契约/实现中的语义更改—只有正确的方法服务提供版本控制,然后提供方法来查看客户端是否与版本兼容。