WCF构建基于SOAP的服务

WCF构建基于SOAP的服务,wcf,web-services,soap,Wcf,Web Services,Soap,我试图找到一些很好的教程,这些教程将向我展示如何使用WCF创建一个简单的基于SOAP的服务并进行部署。我在谷歌上搜索了2个小时,似乎找不到任何好的资源。。有人能帮我吗?至于资源:有一个包含了从初学者教程到文章和示例代码的所有内容 此外,还可以查看一些非常有用的10-15分钟的信息块,这些信息块涉及您可能感兴趣的任何与WCF相关的主题 MSDN杂志上关于WCF各个方面的文章也非常好,有些更基本,有些更高级,更深奥,但总是值得一看 更新:要了解WCF和SOAP,请查看例如 还有更多的东西-有

我试图找到一些很好的教程,这些教程将向我展示如何使用WCF创建一个简单的基于SOAP的服务并进行部署。我在谷歌上搜索了2个小时,似乎找不到任何好的资源。。有人能帮我吗?

至于资源:有一个包含了从初学者教程到文章和示例代码的所有内容

此外,还可以查看一些非常有用的10-15分钟的信息块,这些信息块涉及您可能感兴趣的任何与WCF相关的主题

MSDN杂志上关于WCF各个方面的文章也非常好,有些更基本,有些更高级,更深奥,但总是值得一看

更新:要了解WCF和SOAP,请查看例如


还有更多的东西-有大量关于使用SOAP绑定的WCF的教程和学习材料-当然不仅仅是REST材料

WCF是一种建筑服务技术。它不假定服务是SOAP服务、RESTFul服务或其他任何服务。您必须学习WCf基础知识,如服务和数据契约、端点、绑定等,才能使用任何类型的服务

marc_提供的链接对此非常有用

现在就SOAP而言,它是一种用于将消息从一个端点传输到另一个端点的格式\技术。WCF的绑定方面涵盖了这些细节。当您公开和使用服务时,您只需选择使用SOAP的绑定

因此,您应该使用marc_s提供的链接,学习WCF基础知识以构建服务。然后您将知道如何构建服务以及选择使用SOAP的绑定

希望这能有所帮助。

WCF服务的REST/SOAP端点 您可以在两个不同的端点中公开服务。SOAP-one可以使用支持SOAP的绑定,例如basicHttpBinding,RESTful-one可以使用webHttpBinding。我假设您的REST服务将使用JSON,在这种情况下,您需要使用以下行为配置配置两个端点

<endpointBehaviors>
<behavior name="jsonBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>
REST普通旧XML的POX行为

<behavior name="poxBehavior">
  <webHttp/>
</behavior>

另一种方法是公开两个不同的服务契约,每个契约都有特定的配置。这可能会在代码级别生成一些重复项,但是最终,您希望它能够正常工作。

我已经阅读了所有这些文章,但没有一篇专门介绍SOAP和WCF@EquinoX:WCF是SOAP-通常的绑定都使用SOAP。只需开始使用WCF——您将自动使用SOAP(除非您使用webHttpBinding,即REST),这就是问题所在。所有示例都使用webHttpBinding@EquinoX:更新了我的帖子,其中至少有两个链接提到了将WCF与SOAP一起使用。入门教程真的很有帮助。它具有使基本WCF工作所需的所有功能。
[ServiceContract(Namespace = "http://test")]
public interface ITestService
{
[OperationContract]
[WebGet(UriTemplate = "accounts/{id}")]
Account[] GetAccount(string id);
}
<behavior name="poxBehavior">
  <webHttp/>
</behavior>
<services>
<service name="TestService">
<endpoint address="soap" binding="basicHttpBinding" contract="ITestService"/>
<endpoint address="xml" binding="webHttpBinding"  behaviorConfiguration="poxBehavior" contract="ITestService"/>
</service>
</services>
<client>
<endpoint address="http://www.example.com/soap" binding="basicHttpBinding"
  contract="ITestService" name="BasicHttpBinding_ITestService" />
TestServiceClient client = new TestServiceClient();
client.GetAccount("A123");