【问题标题】:Create a WCF Service Implemented by Third Party创建由第三方实现的 WCF 服务
【发布时间】:2012-11-26 19:56:08
【问题描述】:

我需要为将由我的公司托管但将由第三方实施的 Web 服务创建 Web 服务 API 和数据合同。最好的方法是什么?

理想情况下,我不想要求第三方必须使用 .NET 或任何特定技术。我只是想给他们操作和数据合同。

【问题讨论】:

  • 但是他们必须创建宿主项目并使用我们提供的操作和数据合约?如果他们根本不使用 .NET 怎么办?
  • 如果他们正在创建服务供您使用(以及供您维护),那么您应该明确指定他们必须使用的技术。

标签: .net wcf web-services


【解决方案1】:

如果您的第三方使用 .NET - 那么最简单的解决方案就是简单地将合同定义为 C# 或 VB.NET 中的接口 - 服务合同操作合同(服务方法)、数据合同(来回传递的类型) - 但将实施留到第三个-派对。

基本上,您可以将所有这些粘贴到一个单独的类库程序集中,然后将该程序集作为您的 API 定义提供。然后,该第三方可以将 服务实现 实现为 C#/VB.NET 类库,并将其发回给您。

如果您的第三方根本不使用 .NET,那么您必须创建 WSDL(Web 服务描述语言)描述服务及其方法的文档,以及一些描述来回发送的数据类型的 XSD(XML 模式)文件。

您可以通过基本上执行与上述相同的步骤来相当容易地做到这一点 - 创建您的服务、操作和数据合同 - 然后自己实现该服务的“虚拟”实现;然后启动该服务并从该正在运行的服务创建 WSDL / XSD。将这些文档发送给您的第三方,让他们自行实施服务。

当然 - 您也可以从头开始手动创作 WSDL/XSD - 但这与 a) 黑人艺术和 b) 受虐狂有关 - 不推荐...

【讨论】:

  • 好的,所以我们生成了 WSDL 和 XSD,然后它们实现了服务。然后我们必须实现该服务的客户端,我假设我不能为此在 Visual Studio 中使用生成服务引用 - 除非他们有一个服务版本启动并运行?
  • 在你的 svc.vb 文件中用 标记每个方法,然后添加一个 .asmx 文件(内容就像 .svc 文件一样),当你点击 .asmx?wsdl 你得到一个传统的WSDL。
  • @jjm340:您可以 (a) 从您创建的 WSDL/XSD 文件生成您的服务客户端,或者 (b) 在它启动并运行后从已实现的服务生成您的服务 - 您的选择。
猜你喜欢
  • 2012-06-08
  • 1970-01-01
  • 1970-01-01
  • 2011-09-26
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 2011-07-08
  • 1970-01-01
相关资源
最近更新 更多