3

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

  1. 在 VS 2010 中创建了一个控制台 .NET 4 项目
  2. 添加了一个 WSDL 文件作为服务参考。

但是,我似乎无法使用该服务,因为没有创建类。服务引用只是一个空的命名空间。

我错过了什么?

这是 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>
4

2 回答 2

2

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

于 2012-11-06T12:20:51.063 回答
1

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

wsdl service.wsdl /language:CS

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

于 2012-11-05T10:28:55.077 回答