1

私のデバイスには、Wcfクライアントでサブスクライブする必要がある単一の出力(wsdl:output)を持つDPWSWebサービスがあります

クライアントは通常の.Net4.0アプリケーションであり、.net-micro-frameworkではありません。

そのようなサービスへのそのようなクライアントの構築に関連する例、チュートリアル、またはその他のリソースが必要です。

「サービス参照の追加」は機能しないコードを生成し、「Web参照の追加」はハングします。

Wsdlは以下のとおりです。

この質問に答えるために必要なさらなる情報があれば、私に知らせてください。

どうもありがとう

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
             xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             xmlns:p="http://schemas.xmlsoap.org/ws/2006/02/devprof"
             xmlns:po="http://schemas.xmlsoap.org/ws/2004/09/policy"
             xmlns:tns="http://www.test.fi/wsdl/THLGateway"
             xmlns:wse="http://schemas.xmlsoap.org/ws/2004/08/eventing"
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap12/"
             name="THLGateway"
             targetNamespace="http://www.test.fi/wsdl/THLGateway">
  <po:Policy Id="EventingServicePolicy">
    <p:profile />
    <p:PushDelivery />
    <p:DurationExpiration />
    <p:ActionFilter />
  </po:Policy>
  <types>
    <xsd:schema targetNamespace="http://www.test.fi/wsdl/THLGateway"
                elementFormDefault="qualified">


      <xsd:element name="thlChangeEvent">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="gatewayID"
                         type="xsd:string"
                         nillable ="true"
                         minOccurs="0"/>
            <xsd:element name="nodeID"
                         type="xsd:string"
                          minOccurs="0"
                         nillable ="true"/>
            <xsd:element name="temperature"
                         nillable ="true"
                         minOccurs="0"
                         type="xsd:double"/>
            <xsd:element name="humidity"
                         nillable ="true"
                         minOccurs="0"
                         type="xsd:double"/>
            <xsd:element name="light"
                         nillable ="true"
                         minOccurs="0"
                         type="xsd:double"/>
            <xsd:element name="battery"
                         nillable ="true"
                         minOccurs="0"
                         type="xsd:double"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:schema>
  </types>

  <wsdl:message name="thlChangeResponse">
    <wsdl:part name="parameters" 
          element="tns:thlChangeEvent"/>
  </wsdl:message>

  <wsdl:portType name="THLGatewayPortType"
            wse:EventSource="true">


    <wsdl:operation name="thlChange">
      <wsdl:output message="tns:thlChangeResponse"/>
    </wsdl:operation>
  </wsdl:portType>

  <binding name="THLGatewayPortType"
           type="tns:THLGatewayPortType">
    <soap:binding style="document"
                  transport="http://schemas.xmlsoap.org/soap/http"/>

    <po:PolicyReference URI="#EventingServicePolicy"
                        wsdl:required="true" />
    <wsdl:operation name="thlChange">
      <soap:operation style="document"/>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </binding>
  <service name="THLGateway">
    <port name="THLGatewayPortType"
          binding="tns:THLGatewayPortType">
      <soap:address location="http://192.168.0.93:80/dpws/ws01"/>
    </port>
  </service>
</definitions>
4

1 に答える 1

0

単一出力は、このサービスがイベントを生成することを意味します。WS-Eventingを探す必要があります。在庫の.Net4.0WCFではサポートされていませんが、CodeProjectのプロジェクトがWCFの上にこの機能を実装しています。あなたはまだこのトピックに興味がありますか?

于 2012-08-01T18:51:36.900 に答える