제가 일하는 회사는 우리 소프트웨어의 외부 공급 업체와 협력합니다. 나는 공급 업체 웹 서비스와 통신하기 위해 첫 번째 Windows 서비스를 만드는 작업을 맡았습니다. 공급 업체가 WSDL 및 39 개의 XSD 파일의 사본을 제공했습니다. XSD 파일을 문제없이 클래스 파일로 변환합니다. 나는 WSDL을 변환 할 때, 나는 다음과 같은 오류를 얻을 : 내가 본 svcutil.exe에프록시 생성 중 WSDL의 에러가 발생했습니다.
Error: Cannot import wsdl:portType Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.DataContractSerializerMessageContractImporter Error: Schema with target namespace ' http://tempuri.org/ ' could not be found.
XPath to Error Source:
//wsdl:definitions[@targetNamespace=' http://tempuri.org ']/wsdl:portType[@name='ITrakManService'] Error: Cannot import wsdl:binding Detail: There was an error importing a wsdl:portType that the wsdl:binding is dependent on. XPath to wsdl:portType: //wsdl:definitions[@targetNamespace=' http://tempuri.org/ ']/wsdl:portType[@name='ITrakManService']
XPath to Error Source:
//wsdl:definitions[@targetNamespace=' http://tempuri.org/ ']/wsdl:binding[@name='BasicHttpBinding_ITrakManService']
Generating files... Warning: No code was generated. If you were trying to generate a client, this could be because the metadata documents did not contain any valid contracts or services or because all contracts/services were discovered to exist in reference assemblies. Verify that you passed all the metadata documents to the tool.
를 사용하는 경우
하는 wsdl.exe
Error: Unable to import binding 'BasicHttpBinding_ITrakManService' from namespace ' http://tempuri.org/ '. - Unable to import operation 'AddRedactedDocument'. - The element ' http://tempuri.org/:AddRedactedDocument ' is missing.
를 사용하는 경우 몇 사람이 wsdl의 imports 섹션을 includes로 변경하는 것을 참조하지만, 가져 오기의 어느 것도 명시적인 XSD를 참조하지는 않습니다. 참고로 이것은 가져 오기 섹션입니다.
-<wsdl:types>
-<xsd:schema targetNamespace="http://tempuri.org/Imports">
<xsd:import namespace="http://tempuri.org/" schemaLocation="http://vcp01xred-grd.clerkdev.clerk.local:8090/TrakManWebService.svc?xsd=xsd0"/>
<xsd:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" schemaLocation="http://vcp01xred-grd.clerkdev.clerk.local:8090/TrakManWebService.svc?xsd=xsd1"/>
<xsd:import namespace="http://schemas.datacontract.org/2004/07/TrakManBusiness" schemaLocation="http://vcp01xred-grd.clerkdev.clerk.local:8090/TrakManWebService.svc?xsd=xsd2"/>
<xsd:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" schemaLocation="http://vcp01xred-grd.clerkdev.clerk.local:8090/TrakManWebService.svc?xsd=xsd3"/>
</xsd:schema>
</wsdl:types>
죄송합니다. 귀하가 WSDL 전문가에게 바보 같은 질문 인 경우,이를 시도해 보았습니다. 또한 WSDL과 동일한 디렉토리에있는 XSD 파일로이 작업을 시도했지만 오류는 동일했습니다.