【问题标题】:WCF How to change the prefix in a requestWCF 如何更改请求中的前缀
【发布时间】:2017-10-18 06:06:53
【问题描述】:

在我的 WCF 项目中,我有一个函数“添加新策略”,它接受两个参数。在这个函数的请求中,这两个参数使用的前缀是“cch”。如何将这两个参数的前缀更改为“tem”。

这是请求:

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:tem="http://tempuri.org/" 
xmlns:cch="http://schemas.datacontract.org/2004/07/CCHVisitorsInsuranceWS.NS.NewPo
    licy">
       <soapenv:Header/>
       <soapenv:Body>
          <tem:AddNewPolicy>
             <!--Optional:-->
             <tem:PolicyEntity>
                <!--Optional:-->
                <cch:PolicyNumber>?</cch:PolicyNumber>
                <!--Optional:-->
                <cch:eNumber>?</cch:eNumber>
             </tem:PolicyEntity>
          </tem:AddNewPolicy>
       </soapenv:Body>
    </soapenv:Envelope>

<xs:element name="AddNewPolicy"> 
  <xs:complexType> 
    <xs:sequence> 
      <xs:element xmlns:q3="schemas.datacontract.org/2004/07/…; minOccurs="0" name="PolicyEntity" nillable="true" type="q3:PolicyEntity"/>        
    </xs:sequence> 
   </xs:complexType> 
</xs:element>


    <wsdl:definitions xmlns:wsdl="schemas.xmlsoap.org/wsdl/"; 
    xmlns:wsap="schemas.xmlsoap.org/ws/2004/08/addressing/policy‌​"; 
    xmlns:wsa10="w3.org/2005/08/addressing"; xmlns:tns="tempuri.org/"; 
    xmlns:msc="schemas.microsoft.com/ws/2005/12/wsdl/contract"; 
    xmlns:soapenc="schemas.xmlsoap.org/soap/encoding/"; 
    xmlns:wsx="schemas.xmlsoap.org/ws/2004/09/mex"; 
    xmlns:soap="schemas.xmlsoap.org/wsdl/soap/"; 
    xmlns:wsam="w3.org/2007/05/addressing/metadata"; 
    xmlns:wsa="schemas.xmlsoap.org/ws/2004/08/addressing";
    xmlns:wsp="schemas.xmlsoap.org/ws/2004/09/policy";
    xmlns:wsaw="w3.org/2006/05/addressing/wsdl"; 
    xmlns:soap12="schemas.xmlsoap.org/wsdl/soap12/"; 
    xmlns:wsu="docs.oasis-open.org/wss/2004/01/…";   
    xmlns:xsd="w3.org/2001/XMLSchema"; 
    name="CCHVI" 
    targetNamespace="tempuri.org/">...</wsdl:definitions>

【问题讨论】:

  • 为什么要改变?
  • 因为请求的表格是这样的:??
  • 你能显示服务接口定义吗?
  • 还有 WSDL,好吗?
  • 这是你需要的吗:

标签: .net web-services wcf soapui


【解决方案1】:

您遇到的问题是您的元素 AddNewPolicyPolicyEntity 尚未在任何命名空间中定义;这就是为什么它们被分配到默认的 Microsoft WCF 命名空间 http://tempuri.org/

您需要将它们定义为与PolicyEntity 相同的命名空间的一部分类型,即您的http://schemas.datacontract.org/2004/07/CCHVisitorsInsuranceWS.NS.NewPolicy 命名空间。

就我个人而言,每当我在生成的 WSDL 或 XSD 中看到 http://tempuri.org/ 时,它都会告诉我我的命名空间有问题。一旦我完全摆脱它,它可能就可以了。

【讨论】:

    猜你喜欢
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多