我们目前正在将旧的Web服务(asmx)转换为使用ServiceStack平台开发的REST API层。
存在一些具有在asmx中指定的命名空间和Binding ConformsTo属性的Web服务。以下是一个这样的例子:
[WebService(Namespace = "http://ourcustomsite.com/externalServices")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
我们如何在ServiceStack对应项中设置它们?
答案 0 :(得分:0)
如果您指的是ServiceStack的SOAP Support,它只支持使用.NET DataContract属性更改命名空间,这些属性应该为您的DTO(也称为ServiceModels)所在的每个命名空间指定,例如:
[assembly: ContractNamespace("http://ourcustomsite.com/externalServices",
ClrNamespace = "MyApp.ServiceModel.Operations")]
[assembly: ContractNamespace("http://ourcustomsite.com/externalServices",
ClrNamespace = "MyApp.ServiceModel.Types")]
您还需要在以下位置指定自定义命名空间:
SetConfig(new HostConfig {
WsdlServiceNamespace = "http://ourcustomsite.com/externalServices",
});
ServiceStack的SOAP绑定不可自定义,并且不能用于符合现有SOAP Service的配置文件。 SOAP客户端需要使用/soap11
和/soap12
WSDL来生成WCF服务引用客户端,甚至更好地使用通用Soap12ServiceClient,它可以使用您的Services现有类型的DTO而不是WSDL生成的代理。
SOAP的使用应该是considered legacy,并且仅限于强制使用它们的情况。 Add ServiceStack Reference与ServiceStack的generic C#/.NET Service Clients一起提供了很多faster, simpler, versatile and resilient替代SOAP,可以在number of different C#/.NET Clients的number of different languages中使用,并且应该是首选的解决方案用法是一种选择。