Udostępnij za pośrednictwem


Instrukcje: Używanie krótkiej nazwy z kontraktami WSDL

Istnieją sytuacje, w których może być potrzebny całkowicie samodzielny klient międzyoperacyjności MODELU COM. Usługa, którą chcesz wywołać, może nie uwidocznić punktu końcowego MEX, a biblioteka DLL klienta programu WCF może nie zostać zarejestrowana dla międzyoperajności modelu COM. W takich przypadkach można utworzyć plik WSDL opisujący usługę i przekazać go do nazwy moniker usługi WCF. W tym temacie opisano sposób wywoływania przykładu Getting Started WCF przy użyciu pseudonimu WSDL WCF.

Używanie nazwy moniker usługi WSDL

  1. Otwórz i skompiluj przykładowe rozwiązanie GettingStarted.

  2. Otwórz przeglądarkę i przejdź do witryny , aby http://localhost/ServiceModelSamples/Service.svc upewnić się, że usługa działa.

  3. W pliku Service.cs dodaj następujący atrybut w klasie CalculatorService:

    [ServiceBehavior(Namespace = "http://Microsoft.ServiceModel.Samples")]
    // This service class implements the service contract.
    public class CalculatorService : ICalculator
    {
        public double Add(double n1, double n2)
        {
            return n1 + n2;
        }
    
        public double Subtract(double n1, double n2)
        {
            return n1 - n2;
        }
    
        public double Multiply(double n1, double n2)
        {
            return n1 * n2;
        }
    
        public double Divide(double n1, double n2)
        {
            return n1 / n2;
        }
    }
    
  4. Dodaj przestrzeń nazw powiązania do pliku App.config usługi:

  5. Utwórz plik WSDL, który ma zostać odczytany przez aplikację. Ponieważ przestrzenie nazw zostały dodane w krokach 3 i 4, możesz użyć przeglądarki do wykonywania zapytań dotyczących całego opisu WSDL usługi, przechodząc do http://localhost/ServiceModelSamples/Service.svc?wsdlstrony . Następnie możesz zapisać plik jako serviceWSDL.xml. Jeśli nie określisz przestrzeni nazw w krokach 3 i 4, dokument WSDL zwrócony z wykonywania zapytania o powyższy adres URL nie będzie kompletnym plikiem WSDL. Zwrócony dokument WSDL będzie zawierać kilka instrukcji importu, które importują inne dokumenty WSDL. Musisz przejść przez każdą instrukcję import i skompilować kompletny dokument WSDL, łącząc plik WSDL zwrócony z usługi z zaimportowaną usługą WSDL.

  6. Otwórz program Visual Basic 6.0 i utwórz nowy plik .exe w warstwie Standardowa. Dodaj przycisk do formularza i kliknij dwukrotnie przycisk, aby dodać następujący kod do programu obsługi kliknięć:

    ' Open the WSDL contract file and read it all into the wsdlContract string.  
    Const ForReading = 1  
    Set objFSO = CreateObject("Scripting.FileSystemObject")  
    Set objFile = objFSO.OpenTextFile("c:\serviceWsdl.xml", ForReading)  
    wsdlContract = objFile.ReadAll  
    objFile.Close  
    
    ' Create a string for the service moniker including the content of the WSDL contract file.  
    wsdlMonikerString = "service4:address='http://localhost/ServiceModelSamples/service.svc'"  
    wsdlMonikerString = wsdlMonikerString + ", wsdl='" & wsdlContract & "'"  
    wsdlMonikerString = wsdlMonikerString + ", binding=WSHttpBinding_ICalculator, bindingNamespace='http://Microsoft.ServiceModel.Samples'"  
    wsdlMonikerString = wsdlMonikerString + ", contract=ICalculator, contractNamespace='http://Microsoft.ServiceModel.Samples'"  
    
    ' Create the service moniker object.  
    Set wsdlServiceMoniker = GetObject(wsdlMonikerString)  
    
    ' Call the service operations using the moniker object.  
    MsgBox "WSDL service moniker: 145 - 76.54 = " & wsdlServiceMoniker.Subtract(145, 76.54)  
    

    Uwaga

    Jeśli moniker jest źle sformułowany lub jeśli usługa jest niedostępna, wywołanie GetObject metody zwróci błąd z komunikatem "Nieprawidłowa składnia". Jeśli wystąpi ten błąd, upewnij się, że używany pseudonim jest poprawny i usługa jest dostępna.

  7. Uruchom aplikację Visual Basic. Zostanie wyświetlone okno komunikatu z wynikami wywołania metody Subtract(145, 76.54).

Zobacz też