2012-07-06 2 views
1

내 장치는 단일 출력 (출력 WSDL)와 DPWS 웹 서비스를 제공하고자 .net 4.0 응용 프로그램 - .net-micro-framework가 아닙니다.DPWS 웹 서비스 WCF 클라이언트 예 또는 제안

이러한 서비스를 구축하는 데 관련된 예제 또는 자습서 또는 기타 리소스가 필요합니다.

'서비스 참조 추가'가 작동하지 않는 코드를 생성하고 '웹 참조 추가'가 중단됩니다.

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> 

답변

0

단일 출력이 서비스는 이벤트를 생성하는 것을 의미한다. WS-Eventing을 찾고 싶을 것입니다. NET 4.0 WCF에서 지원되지 않지만 CodeProject 프로젝트는 WCF 위에이 기능을 구현합니다. 이 주제에 관심이 있습니까?

+0

감사합니다. 내 자신의 WCF가없는 DPWS 스택을 만들었습니다. 재미 있었다. – arbitrary