servicestack,Asp.net Mvc 4,Soap,Wsdl,servicestack" /> servicestack,Asp.net Mvc 4,Soap,Wsdl,servicestack" />

Asp.net mvc 4 使用servicestack使用wsdl soap服务

Asp.net mvc 4 使用servicestack使用wsdl soap服务,asp.net-mvc-4,soap,wsdl,servicestack,Asp.net Mvc 4,Soap,Wsdl,servicestack,我一直在尝试使用asp.net C#mvc5应用程序使用wsdl soap服务。最初的服务是用php编写的,这在理想情况下应该无关紧要,但我一直无法做到这一点。我刚刚了解到servicestack是一种与mvc体系结构配合良好的替代方案。我正在寻找关于如何使用servicestack使用wsdl soap服务的指针。对此,如有任何帮助,将不胜感激。我很乐意买一些书来指导我如何将这两种方法中的任何一种与我的mvc应用程序配合使用ServiceStack允许通过SOAP端点自动生成WSDL和XSD来

我一直在尝试使用asp.net C#mvc5应用程序使用wsdl soap服务。最初的服务是用php编写的,这在理想情况下应该无关紧要,但我一直无法做到这一点。我刚刚了解到servicestack是一种与mvc体系结构配合良好的替代方案。我正在寻找关于如何使用servicestack使用wsdl soap服务的指针。对此,如有任何帮助,将不胜感激。我很乐意买一些书来指导我如何将这两种方法中的任何一种与我的mvc应用程序配合使用

ServiceStack允许通过SOAP端点自动生成WSDL和XSD来公开您的.NET服务,可以使用VS.NET的添加服务引用或使用ServiceStack的.NET

但是ServiceStack不提供用于消费任何第三方SOAP服务的通用SOAP客户端。SOAP是一个最好的选择,您可以询问PHP SOAP服务的开发人员是否可以推荐任何.NET SOAP客户端,因为任何独立的SOAP客户端实现都不可能在没有问题的情况下互操作,除非它们已经过测试并验证为兼容

如果做不到这一点,最可靠的选择是将SOAP XML视为字符串,在字符串中构造原始SOAP请求并将其发送到远程端点,例如SOAP 1.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>";
然后用WCF解析SOAP响应,如果即使WCF通用消息也不支持SOAP响应,那么您可以尝试使用类似的方法将其动态解析为XML

var soapResponseXml = soapEndpointUrl.PostXmlToUrl(soapRequest, 
  httpReq => httpReq.Headers["SOAPAction"] = requestName);