【问题标题】:how to make a service, SOAP web service in .net?如何在.net 中创建服务、SOAP Web 服务?
【发布时间】:2012-03-15 01:51:33
【问题描述】:

由于我对 Web 服务了解不多,请原谅我提出这个基本的和一点理论性的问题。

我不是指 WCF 服务,我指的是 .net / C# 中的简单服务。我想知道怎么知道是肥皂还是休息服务?

我们如何将这种类型从 Soap 更改为 Rest,反之亦然?

谢谢

【问题讨论】:

  • WCF 是 ASMX 服务的替代品。您不应该将 ASMX 用于新开发,因为它是一项遗留技术。顺便说一句,WCF 产生 SOAP 服务,包括简单的服务。
  • 您问题中的术语令人困惑。通过说它不是 WCF 假定它是 ASMX(经典 XML Web 服务)。如果它真的是 RESTful,那么它可能仍然是基于 WCF 的。需要澄清一下,才能知道我的回答是否合适。
  • 如果您绑定到 HTTP,如果您可以等待 Web API / MVC 4,请不要使用 WCF 启动任何新内容 ;-)(不过 servicestack 也是一个不错的建议)

标签: c# .net rest soap


【解决方案1】:

XML Web 服务(又名经典/旧版 ASMX Web 服务)不应用于主动开发。如果必须,可以使用 a nice walkthrough on MSDN 在更新的 Visual Studio (> 2005) 版本中添加 Web 引用。

另一方面,如果您的 Web 服务是真正的 Restful,那么您将无法创建对它的服务引用的等价物。您需要使用 HttpWebRequestWebClient 或 .NET 4.5 中的新 HttpClient(也可从已弃用的 Rest 入门套件中获得)。


作为替代方案,如果您希望实现能够处理这两种情况的客户端,我建议将HttpWebRequest POST 发送到 SOAP(非 WCF)服务。这种方法的问题是您可能必须自己将请求包装在 SOAP 包装器中。幸运的是,网上有examples 这样做,您至少可以将其用作起点。

【讨论】:

    【解决方案2】:

    ASMX 服务建立在 SOAP 之上。 REST 只是基于 HTTP 的,您可以像访问普通 URL 一样访问(或调用)您的业务资源。

    对于产品目录系统中的 ex,通过使用 asmx,您可以创建一组函数来添加、更新、删除产品。比如 addProduct()、updateProduct 等。

    但在 REST 中,您将拥有单点访问,例如 http:\mysystem\prodcuts。要检索、添加、更新、删除产品,您将在同一 URL 上使用相应的 HTTP 动词(GET、POST、PUT、DELETE)。

    所以,从技术上讲,不可能将 asmx(SOAP) 服务转换为 rest...

    【讨论】:

      猜你喜欢
      • 2023-03-26
      • 1970-01-01
      • 2021-06-12
      • 1970-01-01
      • 2017-10-15
      • 1970-01-01
      • 1970-01-01
      • 2013-04-08
      • 1970-01-01
      相关资源
      最近更新 更多