将WSDL导入.NET项目只会创建一个空命名空间

时间:2012-11-05 10:12:10

标签: c# .net wcf wsdl wcf-client

我第一次尝试使用WCF。这是我做的:

  1. 在VS 2010中创建了一个控制台.NET 4项目
  2. 添加了WSDL文件作为服务引用。
  3. 但是,我似乎无法使用该服务,因为没有创建任何类。服务引用只是一个空命名空间。

    我错过了什么?

    这是WSDL:

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by Christophe Duquesne (DRYADE SA) -->
    <!-- edited with XMLSpy v2007 rel. 3 U (http://www.altova.com) by Nick js Knowles (Kizoom) -->
    <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:siriWS="http://new.webservice.namespace" xmlns:siri="http://www.siri.org.uk/siri" xmlns:ns="http://datex2.eu/schema/1_0/1_0" xmlns:ns1="http://www.ifopt.org.uk/acsb" xmlns:ns2="http://www.ifopt.org.uk/ifopt" targetNamespace="http://new.webservice.namespace">
      <types>
            <xsd:schema targetNamespace="http://new.webservice.namespace">
                <xsd:import schemaLocation="siri.xsd" namespace="http://www.siri.org.uk/siri"/>
            </xsd:schema>
        </types>
        <message name="StopMonitoringServiceRequest">
            <part name="Request" type="siri:ServiceRequestStructure"/>
        </message>
        <message name="StopMonitoringServiceDelivery">
            <part name="Answer" type="siri:ServiceDeliveryStructure"/>
        </message>
        <portType name="SOAP-Port">
            <operation name="GetStopMonitoringService">
                <input message="siriWS:StopMonitoringServiceRequest"/>
                <output message="siriWS:StopMonitoringServiceDelivery"/>
            </operation>
        </portType>
        <binding name="SiriSOAPBinding" type="siriWS:SOAP-Port">
            <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
            <!-- ====general  services ===== -->
            <!-- ====SIRI services ===== -->
            <operation name="GetStopMonitoringService">
                <soap:operation soapAction="GetStopMonitoringService"/>
                <input>
                    <soap:body use="literal"/>
                </input>
                <output>
                    <soap:body use="literal"/>
                </output>
            </operation>
        </binding>
        <service name="SiriServices">
            <port name="SiriWSPort" binding="siriWS:SiriSOAPBinding">
                <soap:address location="http://www.siri-service-location.com"/>
            </port>
        </service>
        <!--General messages-->
        <!--SIRI Functional services-->
        <!--Capabilities-->
        <xsd:annotation>
            <xsd:appinfo xmlns:gms="http://www.govtalk.gov.uk/CM/gms">
                <Metadata xmlns="http://www.govtalk.gov.uk/CM/gms-xs">
                    <Aggregation>main schema</Aggregation>
                    <Audience>e-service developers</Audience>
                    <Contributor>Nicholas Knowles, KIZOOM LTD., London EC4A 1LT</Contributor>
                    <Coverage>Europe</Coverage>
                    <Creator>>Drafted for version 1.0, by  Cen TC278 WG3 SG7 Christophe Duquesne DRYADE SA mailto:schemer@siri.org.uk</Creator>
                    <Date>
                        <Created>2005-03-01</Created>
                    </Date>
                    <Date>
                        <Modified>2005-05-11</Modified>
                    </Date>
                    <Date>
                        <Modified>2007-01-30</Modified>
                    </Date>
                    <Date>
                        <Modified>2007-04-17</Modified>
                        <!-- Name Space changes -->
                    </Date>
                    <Date>
                        <Modified>2008-02-12</Modified>
                        <!-- Situation  Exchnages -->
                    </Date>
                    <Date>
                        <Modified>2007-04-17</Modified>
                        <!-- Name Space correction  -->
                        <!-- Add  StopMonitoringMultipleRequest  -->
                    </Date>
                    <Description>
                        <p>SIRI is a European CEN standard for the exchange of real time information. This describes WSDL Server binding</p>
                    </Description>
                    <Format>
                        <MediaType>text/xml</MediaType>
                        <Syntax>http://www.w3.org/2001/XMLSchema</Syntax>
                        <Description>XML schema, W3C Recommendation 2001</Description>
                    </Format>
                    <Identifier>{http://www.siri.org.uk/schemas/1.3/siri}siri_wsProducer.wsdl</Identifier>
                    <Language>[ISO 639-2/B] ENG</Language>
                    <Publisher>Kizoom, 109-123 Clifton Street, London EC4A 4LD </Publisher>
                    <Rights>Unclassified
                                 <Copyright>CEN, VDV, RTIG 2005-2008</Copyright>
                    </Rights>
                    <Source>
                        <ul>
                            <li>SIRI is derived from the VDV, RTIGXML and Trident standards.</li>
                        </ul>
                    </Source>
                    <Status>Version 1.0 Draft for approval</Status>
                    <Subject>
                        <Category>Arts, recreation and travel, Tourism, Travel (tourism), Transport,
     Air transport, Airports,
     Ports and maritime transport, Ferries (marine),
     Public transport, Bus services, Coach services, Bus stops and stations,
     Rail transport, Railway stations and track, Train services, Underground trains,
     Business and industry, Transport, Air transport , Ports and maritime transport, Public transport,
     Rail transport, Roads and road transport
     </Category>
                        <Project>Cen TC278 WG3 SG7</Project>
                    </Subject>
                    <Title>SIRI XML schema. WSDL Server binding. </Title>
                    <Type>Standard</Type>
                </Metadata>
            </xsd:appinfo>
        </xsd:annotation>
        <!-- ======== All the structures are comming from siri.xsd ========= -->
        <!-- ======== Descritions of request parameters (requests and answers) ========= -->
        <!-- ========Service Requests ========= -->
        <!-- ====StopMonitoring== -->
        <!-- ====PORTS ================ -->
        <!-- ====BINDINGS  ================ -->
    </definitions>
    

2 个答案:

答案 0 :(得分:2)

显然导入模式时出错,我应该查看错误列表窗口。

答案 1 :(得分:1)

尝试运行命令工具wsdl.exe。我用你的wsdl试了一下,但是有一些错误。将wsdl保存到文件(此处为service.wsdl)并尝试运行:

wsdl service.wsdl /language:CS

应创建一个名为Service.cs的文件,您可以将其包含在项目中。