多个端点的WCF服务
如何确保我的WCF服务可以从任何其他语言(Java、PHP、iOS使用的任何语言等)访问多个端点的WCF服务,wcf,.net-4.0,Wcf,.net 4.0,如何确保我的WCF服务可以从任何其他语言(Java、PHP、iOS使用的任何语言等)访问 我将所有内容保留为httpbinding plus,没有为客户端使用任何.net角色/成员身份验证。但有些事情我不确定。例如,我可以返回一个其他语言可读的通用列表吗?如果您无法控制用于使用您的服务的客户端技术,则无法100%确定。但是,如果您的web服务(WSDL)符合v1.1,您可以非常自信。该标准得到了广泛的支持和成熟。您可以使用优秀的测试工具来测试WSDL的一致性。任何不以net开头的WCF绑定(ne
我将所有内容保留为httpbinding plus,没有为客户端使用任何.net角色/成员身份验证。但有些事情我不确定。例如,我可以返回一个其他语言可读的通用列表吗?如果您无法控制用于使用您的服务的客户端技术,则无法100%确定。但是,如果您的web服务(WSDL)符合v1.1,您可以非常自信。该标准得到了广泛的支持和成熟。您可以使用优秀的测试工具来测试WSDL的一致性。任何不以
net
开头的WCF绑定(netTcp、netMsmq等)都应该是良好的—它们被设计为可互操作的
最基本的一个是basicHttpBinding
,它是非常简单的HTTP——没有什么可以添加到它。您应该能够从任何脚本语言(PHP等)调用它
更高级的绑定是wsHttpBinding
,它实现了许多WS-*标准,可以从网络堆栈可以处理WS-*内容(如Java等)的其他语言调用
还有webHttpBinding
,它不是通过SOAP而是通过REST端点公开您的服务。这应该可以从任何语言、任何设备、任何地方调用
当然,如果您从服务中公开多个端点,为任何试图呼叫您的人提供多种选择,您将获得最佳覆盖率。所有这些都只需在配置中完成—无需更改代码即可支持多个端点、多个绑定等
至于列表和内容:WCF交换序列化消息——基本上是XML——由XML模式管理。WSDL和XSD的组合是完全可互操作的,并且可以被多种其他语言理解
NET中的列表
将转换为XML结构中的数组,这是完全可互操作的,不用担心。客户端可能只是返回一个数组而不是一个列表,但这不是问题
唯一的问题是,您无法真正为泛型列表建模,因为XML模式不支持泛型-您需要明确地知道要返回的内容。
列表
不起作用-列表会起作用(如果您的客户
对象是您的数据合同的一部分,并且标记为该对象)谢谢:)。如何将对象标记为数据协定的一部分?@Matt:在类上放置一个[DataContract]
属性,并用[DataMember]
装饰所有应序列化(包括在WCF消息中)的成员