-->

WSDL错误:报头和文档的没有适当的分离(wsdl error: no proper separat

2019-07-20 05:59发布

我使用的NuSOAP使用SOAP接口microsoftdynamics。 我得到这个错误“WSDL错误:获取https://testserver2013.api.crm4.dynamics.com/XRMServices/2011/Organization.svc?wsdl=wsdl0 - HTTP错误:头和文件没有适当分离”,我“M有点混乱。

我假设XML文档是好的,是那里头有问题,或者是它可能我正在读错误吧! 谢谢。

该文档的XML看起来像这样

    <ms-xrm:FailoverPolicy xmlns:ms-xrm="http://schemas.microsoft.com/xrm/2012/Contracts/Services">
      <ms-xrm:FailoverAvailable>false</ms-xrm:FailoverAvailable>
      <ms-xrm:EndpointEnabled>true</ms-xrm:EndpointEnabled>
    </ms-xrm:FailoverPolicy>
    <ms-xrm:AuthenticationPolicy xmlns:ms-xrm="http://schemas.microsoft.com/xrm/2011/Contracts/Services">
      <ms-xrm:Authentication>LiveId</ms-xrm:Authentication>
      <ms-xrm:SecureTokenService>
        <ms-xrm:Identifier>urn:federation:MicrosoftOnline</ms-xrm:Identifier>
        <ms-xrm:LiveTrust>
          <ms-xrm:AppliesTo>urn:crmemea:dynamics.com</ms-xrm:AppliesTo>
          <ms-xrm:TrustVersion>WSTrustFeb2005</ms-xrm:TrustVersion>
          <ms-xrm:SecurityMode>TransportWithMessageCredential</ms-xrm:SecurityMode>
          <ms-xrm:LivePolicy>MBI_FED_SSL</ms-xrm:LivePolicy>
          <ms-xrm:LiveIdAppliesTo>http://Passport.NET/tb</ms-xrm:LiveIdAppliesTo>
        </ms-xrm:LiveTrust>
      </ms-xrm:SecureTokenService>
    </ms-xrm:AuthenticationPolicy>
    <ms-xrm:FailoverPolicy xmlns:ms-xrm="http://schemas.microsoft.com/xrm/2012/Contracts/Services">
      <ms-xrm:FailoverAvailable>false</ms-xrm:FailoverAvailable>
      <ms-xrm:EndpointEnabled>true</ms-xrm:EndpointEnabled>
    </ms-xrm:FailoverPolicy>
    <ms-xrm:AuthenticationPolicy xmlns:ms-xrm="http://schemas.microsoft.com/xrm/2012/Contracts/Services">
      <ms-xrm:Authentication>OnlineFederation</ms-xrm:Authentication>
      <ms-xrm:SecureTokenService>
        <ms-xrm:Identifier>https://dynamicscrmemea.accesscontrol.windows.net/</ms-xrm:Identifier>
        <ms-xrm:OrgTrust>
          <ms-xrm:AppliesTo>urn:crmemea:dynamics.com</ms-xrm:AppliesTo>
          <ms-xrm:TrustVersion>WSTrustFeb2005</ms-xrm:TrustVersion>
          <ms-xrm:SecurityMode>TransportWithMessageCredential</ms-xrm:SecurityMode>
          <ms-xrm:LivePolicy>MBI_FED_SSL</ms-xrm:LivePolicy>
          <ms-xrm:LiveIdAppliesTo>http://Passport.NET/tb</ms-xrm:LiveIdAppliesTo>
          <ms-xrm:LiveEndpoint>https://login.microsoftonline.com/RST2.srf</ms-xrm:LiveEndpoint>
          <ms-xrm:Identifier>urn:federation:MicrosoftOnline</ms-xrm:Identifier>
        </ms-xrm:OrgTrust>
      </ms-xrm:SecureTokenService>
    </ms-xrm:AuthenticationPolicy>
    <ms-xrm:FailoverPolicy xmlns:ms-xrm="http://schemas.microsoft.com/xrm/2012/Contracts/Services">
      <ms-xrm:FailoverAvailable>false</ms-xrm:FailoverAvailable>
      <ms-xrm:EndpointEnabled>true</ms-xrm:EndpointEnabled>
    </ms-xrm:FailoverPolicy>
    <sp:TransportBinding xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
      <wsp:Policy>
        <sp:TransportToken>
          <wsp:Policy>
            <sp:HttpsToken/>
          </wsp:Policy>
        </sp:TransportToken>
        <sp:AlgorithmSuite>
          <wsp:Policy>
            <sp:TripleDes/>
          </wsp:Policy>
        </sp:AlgorithmSuite>
        <sp:Layout>
          <wsp:Policy>
            <sp:Strict/>
          </wsp:Policy>
        </sp:Layout>
        <sp:IncludeTimestamp/>
      </wsp:Policy>
    </sp:TransportBinding>
    <sp:SignedSupportingTokens xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
      <wsp:Policy>
        <sp:IssuedToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
          <Issuer xmlns="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
            <Address xmlns="http://www.w3.org/2005/08/addressing">https://login.microsoftonline.com/RST2.srf</Address>

            <Metadata xmlns="http://www.w3.org/2005/08/addressing">
              <Metadata xmlns="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                <wsx:MetadataSection xmlns="">
                  <wsx:MetadataReference>
                    <Address xmlns="http://www.w3.org/2005/08/addressing">https://dynamicscrmemea.accesscontrol.windows.net/v2/wstrust/mex</Address>
                  </wsx:MetadataReference>
                </wsx:MetadataSection>
              </Metadata>
            </Metadata>
          </Issuer>
          <sp:RequestSecurityTokenTemplate>
            <trust:KeyType xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512">http://docs.oasis-open.org/ws-sx/ws-trust/200512/SymmetricKey</trust:KeyType>
            <trust:KeySize xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512">192</trust:KeySize>
            <trust:Claims Dialect="http://schemas.xmlsoap.org/ws/2005/05/identity" xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512">
              <wsid:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" xmlns:wsid="http://schemas.xmlsoap.org/ws/2005/05/identity"/>
            </trust:Claims>
            <trust:KeyWrapAlgorithm xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512">http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p</trust:KeyWrapAlgorithm>
            <trust:EncryptWith xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512">http://www.w3.org/2001/04/xmlenc#tripledes-cbc</trust:EncryptWith>
            <trust:SignWith xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512">http://www.w3.org/2000/09/xmldsig#hmac-sha1</trust:SignWith>
            <trust:CanonicalizationAlgorithm xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512">http://www.w3.org/2001/10/xml-exc-c14n#</trust:CanonicalizationAlgorithm>
            <trust:EncryptionAlgorithm xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512">http://www.w3.org/2001/04/xmlenc#tripledes-cbc</trust:EncryptionAlgorithm>
          </sp:RequestSecurityTokenTemplate>
          <wsp:Policy>
            <sp:RequireInternalReference/>
          </wsp:Policy>
        </sp:IssuedToken>
      </wsp:Policy>
    </sp:SignedSupportingTokens>
    <sp:Wss11 xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
      <wsp:Policy/>
    </sp:Wss11>
    <sp:Trust13 xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
      <wsp:Policy>
        <sp:MustSupportIssuedTokens/>
        <sp:RequireClientEntropy/>
        <sp:RequireServerEntropy/>
      </wsp:Policy>
    </sp:Trust13>
    <wsaw:UsingAddressing/>
  </wsp:All>
</wsp:ExactlyOne>

任何想法,谢谢! 或上的Microsoft Dynamics CRM在线2011的任何良好的工作教程将是巨大的!

谢谢!

Answer 1:

检查你的行结束。 该问题可以通过LF和CR + LF的混合物在PHP /源文件引起



Answer 2:

我刚看到这个错误,这似乎是在的NuSOAP代码中的错误。 在我们的情况下,这是由一个401错误响应SOAP调用,但301层302的反应引起似乎引发了同样的问题。

这个错误似乎是以下行的代码:

如果($ POS = strpos($数据,为 “\ r \ n \ r \ n” 个))

当头部被剥夺$ POS设置为0,这为FALSE,而它出现在开发者的预期它评估为TRUE与其中报头是完好的情况下沿。

请参阅: https://github.com/codecasts/nusoap-php7/blob/master/lib/class.soap_transport_http.php



文章来源: wsdl error: no proper separation of headers and document