Webservices是SOAP消息(SOAP协议使用XML来传递消息),因此你的服务器两端都必须理解SOAP和你想要在它们之间讨论的任何扩展,并且它们可能(但不一定)能够理解WMDL文件(这“解释”了可用的各种服务端点和远程功能)。通常我们称其为SOAP/WS-*堆栈,重点在于“堆栈”,因为需要有几个软件部件可用,而SOAP调用越复杂,就需要更多的堆栈部件可用和维护。
另一方面,使用POST主要与RESTful行为相关联,HTTP协议是这种协议的一个例子。在POST内部,当然可以发布复杂的XML,但人们倾向于使用简单的POST来简化调用,并使用HTTP响应作为回复。您可能不需要任何额外的软件,因为大多数Webkit都支持HTTP。如果您好奇,我的偏见倾向于REST。通过使用HATEOAS,您可以为自我感知系统创建真正良好的基础设施,以实时方式根据负载和可用性进行自我修改,而不是SOAP方式。这是支持REST的中心论点;HTTP是面向大型分布式网络设计的,处理性能和稳定性。SOAP往往是一种一站式解决方案,如果出现故障,您就会遇到困难。(再次提醒我的偏见。我在我的博客上写了很多关于此的内容,特别是架构方面和SOA与ROA的影响。:)
有一个很大的争论,关于哪个更“好”,我只能说“完全取决于你想要做什么,你喜欢如何做,你需要它做什么,你的环境,你的经验,太阳和月亮的位置以及我的猫的情绪。”这意味着很多。两者都可以工作。取决于您的需求,其中一种较重(WS-*堆栈),另一种则更轻量级且已经得到支持。其余的就像他们所说的那样,只是胶水。
我认为Web服务绝对是最佳选择。以下是一些优点:
这里可能还有更多优点,例如设计时支持/代码完成。
从我的一点经验来看,我认为最好使用 Web 服务,因为您可以在代码中查看服务的方法和结构,一旦您在接收端创建了它。
此外,使用表单提交方法意味着您必须伪造表单提交,这不如进行 Web 服务调用简洁。
第三种方法是让数据库交流,但我猜想它们是不同的,无法相互“看到”?
我同意AlexanderJohannesen的观点,SOAP Web服务和RESTful API哪个更好还有待商榷,但是如果两个站点都在您的控制下并且使用asp.net完成,则一定要选择SOAP Web服务。Visual Studio提供的创建和使用Web服务的工具非常棒,您只需要几分钟就可以创建两个站点之间的链接。
在您想要接收通信的站点中,在VS中选择添加项目。选择Web服务并适当地命名它。然后只需创建一个带有您想要实现的逻辑的方法,并添加属性[WebMethod],例如:
[WebMethod] public void AddComment(int UserId, string Comment) { // do stuff }
将其部署在测试服务器上,例如tst.myweb2.com。
现在在消费方面(www.myweb1.com),选择添加Web引用,将URL指向我们刚刚创建的Web服务的地址,给它一个名称并单击添加引用。您将拥有一个代理类,可以像本地类一样调用它。简单易行。