我一直试图使用asp.net C# mvc5应用程序来使用wsdl服务。最初的服务是用php编写的,理想情况下,这并不重要,但我无法完成这项工作。我刚刚了解到,servicestack是一种适用于mvc架构的替代方案。我正在寻找关于如何使用servicestack使用wsdl服务的指针--对此的任何帮助都将不胜感激。我很乐意购买指导我如何使用mvc应用程序的这两种方法的书籍。
发布于 2015-07-29 16:32:29
ServiceStack允许通过SOAP端点公开.NET服务,方法是自动生成SOAP兼容服务的WSDL和XSD,这些服务可以使用用.NET的创建的生成的客户端代理,也可以使用ServiceStack的.NET Soap11ServiceClient和Soap12ServiceClient。
但是ServiceStack并没有为使用任何第三方SOAP服务提供通用的SOAP客户端。SOAP是一个不必要的复杂和脆弱的格式,您最好的选择是询问PHP的开发人员是否可以推荐任何.NET SOAP客户端,因为不太可能没有任何独立的SOAP客户端实现可以互操作,除非它们经过测试和验证是兼容的。
如果做不到这一点,最可靠的选择是将SOAP视为字符串,在该字符串中构造一个原始SOAP请求并将其发送到远程端点,例如SOAP1.1请求:
var soapRequest = @"<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>"
+ requestXml
+ "</soap:Body></soap:Envelope>";
使用HTTP Utils发布XML的示例
var soapResponseXml = soapEndpointUrl.PostXmlToUrl(soapRequest,
httpReq => httpReq.Headers["SOAPAction"] = requestName);
然后使用WCF的Message.CreateMessage()解析SOAP响应,如果即使WCF通用消息也不支持SOAP响应,则可以尝试使用类似于XLINQ的XDocument的方法将其动态解析为XML。
https://stackoverflow.com/questions/31712930
复制相似问题