Udostępnij za pośrednictwem


Tworzenie aplikacji klienta/serwera DCOM przy użyciu języka Visual Basic

W tym artykule opisano sposób tworzenia, tworzenia i wdrażania aplikacji klienta/serwera rozproszonego modelu obiektów składników (DCOM) przy użyciu języka Visual Basic.

Oryginalna wersja produktu: Visual Basic
Oryginalny numer KB: 266717

Podsumowanie

W tym artykule pokazano, jak utworzyć, spakować i wdrożyć aplikację klienta/serwera DCOM przy użyciu języka Visual Basic. Aby utworzyć aplikację klienta/serwera DCOM, potrzebujesz wersji Enterprise Edition języka Visual Basic. Firma Microsoft zakłada, że czytelnik jest już zaznajomiony z tworzeniem aplikacji klienckich/serwerowych uruchamianych na tym samym komputerze.

Więcej informacji

Nie trzeba zmieniać kodu, aby umożliwić aplikacji klienckiej utworzenie wystąpienia serwera zdalnego przy użyciu modelu DCOM. Różnica polega na tym, w jaki sposób pakujesz i wdrażasz klienta. Ponadto po zainstalowaniu klienta i serwera należy wprowadzić pewne ustawienia zabezpieczeń. Te ustawienia można ustawić przy użyciu narzędzia o nazwie Dcomcnfg.

Poniższe kroki pokazują, jak dystrybuować i konfigurować aplikację klienta/serwera. Nadaj serwerowi nazwę DCOMDemo_Svr i nadaj nazwę DCOMDemo_Cli klienta. Utwórz oddzielny folder dla każdego z nich. Na potrzeby tego artykułu wywołaj te foldery c:\DCOMDemo\Server and c:\DCOMDemo\Client.

Tworzenie serwera

  1. Uruchom nowy projekt Visual Basic. W oknie dialogowym Nowy projekt wybierz pozycję ActiveX EXE, a następnie kliknij przycisk Otwórz. Klasa 1 jest tworzona domyślnie.

  2. Dodaj następujący kod do modułu Class1:

    Public Function ServerTime() As String
        ServerTime = Time
    End Function
    
  3. W menu Projekt kliknij opcję Właściwości projektu, a następnie wybierz kartę Ogólne.

  4. W polu Nazwa projektu wpisz DCOMDemo_Svr.

  5. W polu Opis projektu wpisz DCOMDemo_Svr — Serwer. Zaznacz opcję Nienadzorowane wykonywanie.

    Uwaga 16.

    Ta opcja powinna być zawsze zaewidencjonowana na serwerach, które nie mają żadnego interfejsu użytkownika, aby upewnić się, że żadne okna dialogowe dowolnego typu nie są wyświetlane podczas działania serwera. Jeśli masz jakikolwiek typ interakcji użytkownika podczas działania serwera w ramach tożsamości, która nie jest użytkownikiem interaktywnym, serwer może wydawać się zawieszać.

  6. Wybierz kartę Składnik i zaznacz opcję Pliki serwera zdalnego.

    Uwaga 16.

    Zaznaczenie tej opcji sprawia, że kompilator języka Visual Basic generuje pliki VBR i TLB potrzebne do pakowania aplikacji klienckich korzystających z tego serwera. Te pliki zawierają wpisy rejestru, które należy uwzględnić na komputerze klienckim.

  7. Zamknij okno dialogowe Właściwości projektu.

  8. W menu Plik wybierz pozycję Zapisz jako, a następnie zapisz ten projekt w pliku c:\DCOMDemo\Server folder.

  9. W menu Plik wybierz pozycję Ustaw DCOMDemo_Svr i skompiluj serwer.

  10. W menu Projekt wybierz opcję Właściwości projektu, a następnie wybierz kartę Składnik.

  11. Na karcie Składnik wybierz pozycję Zgodność wersji, wybierz opcję Zgodność binarna, a następnie ustaw plik binarny projektu zgodny z utworzonym plikiem wykonywalnymi serwera (DCOMDemo_Svr.exe). Po wybraniu tej opcji zapewniasz, że wszystkie identyfikatory GUID są zachowywane tak samo, jeśli ponownie skompilujesz serwer.

Tworzenie klienta

  1. W menu Plik wybierz opcję Nowy projekt, wybierz pozycję Standardowy PLIK EXE, a następnie kliknij przycisk OK. Formularz1 jest tworzony domyślnie.

  2. W menu Projekt kliknij opcję Właściwości projektu, a następnie wybierz kartę Ogólne.

  3. W polu Nazwa projektu wpisz DCOMDemo_Cli.

  4. W polu Opis projektu wpisz ciąg DCOMDemo_Cli Project — Client.

  5. W menu Project (Projekt) wybierz pozycję References (Odwołania). Z listy dostępnych odwołań wybierz pozycję DCOMDemo_Svr — Serwer.

  6. Umieść przycisk polecenia w formularzu Form1 i zmień podpis przycisku na Uruchom.

  7. Umieść następujący kod w zdarzeniu kliknięcia przycisku:

    Dim MyObj As DCOMDemo_Svr.Class1
    
    On Error GoTo err1
    
    Set MyObj = CreateObject("DCOMDemo_Svr.Class1")
    MsgBox "Server Time=" & MyObj.ServerTime & " Client Time=" & Time
    
    Exit Sub
    err1:
    MsgBox "Connection failed: Error " & Err.Number & " - " & Err.Description
    
  8. W menu Plik wybierz pozycję Zapisz jako, a następnie zapisz projekt w folderze c:\DCOMDemo\Clientklienta .

  9. Naciśnij F5, aby uruchomić klienta w środowisku IDE i przetestować go.

  10. W menu Plik wybierz pozycję Ustaw DCOMDemo_Cli, aby skompilować klienta, a następnie zamknij program Visual Basic.

Spakuj serwer

Użyj Kreatora pakietów i wdrożeń, aby spakować serwer do dystrybucji w zwykły sposób. Serwer jest tworzone przez klienta zdalnego przy użyciu modelu DCOM. Podczas tworzenia pakietu dla serwera zostanie wyświetlone okno dialogowe z pytaniem, czy ten serwer będzie używany jako serwer automatyzacji zdalnej, a jeśli chcesz uwzględnić pliki pomocy technicznej w tym celu. Po prostu kliknij przycisk Nie , ponieważ DCOM nie jest automatyzacją zdalną. Remote Automation to starsza technologia, która została zastąpiona przez model DCOM.

Spakuj klienta

Podczas pakowania klienta należy wykonać określone kroki, biorąc pod uwagę, że serwer nie działa na tym samym komputerze co klient. Zmiany wprowadzone w pakiecie klienta zapewniają, że jest zainstalowana tylko biblioteka typów (plik tlb), a niektóre dodatkowe wpisy rejestru są uwzględniane zamiast pliku wykonywalnego serwera, co nie jest konieczne na komputerze klienta, ponieważ nie będzie tam działać.

Spakuj klienta, wykonując następujące czynności:

  1. Uruchom Kreatora pakietów i wdrożeń, a następnie wybierz projekt Klienta.

  2. Kliknij przycisk Pakiet. W oknie dialogowym Typ pakietu wybierz pozycję Standardowy pakiet instalacyjny, a następnie kliknij przycisk Dalej.

  3. W oknie dialogowym Folder pakietu wybierz folder do przechowywania pakietu, a następnie kliknij przycisk Dalej. W tym przypadku jest to c:\DCOMDemo\Client\Package.

    Uwaga 16.

    Może zostać wyświetlone okno dialogowe z informacją, że serwer nie zawiera informacji o zależnościach. Kliknij przycisk OK , ponieważ ten serwer nie ma żadnych zależności.

    Powinno być teraz w oknie dialogowym Dołączone pliki.

  4. Usuń zaznaczenie pliku wykonywalnego serwera, DCOMDemo_Svr.exe, ponieważ nie chcesz dystrybuować pliku wykonywalnego serwera, a następnie kliknij przycisk Dodaj.

  5. Zmień pole kombi Pliki typu na Pliki serwera zdalnego (*.vbr).

  6. Wskaż folder, w którym znajduje się projekt serwera (w tym przypadku c:\DCOMDemo\Server), a następnie wybierz powiązany plik VBR DCOMDemo_Svr.VBR. Kliknij przycisk Otwórz, a okno dialogowe Dodawanie pliku zostanie zamknięte.

    Uwaga 16.

    Te dwa pliki są dołączone, DCOMDemo_Svr.VBR i DCOMDemo_Svr.TLB. Kliknij przycisk Next (Dalej). W oknie dialogowym Serwery zdalne można zdefiniować nazwę komputera (adres net), na którym jest uruchomiony serwer. Zazwyczaj to pole jest puste, ponieważ być może nie wiadomo z wyprzedzeniem, gdzie serwer zostanie zainstalowany. Jeśli zachowasz jego wartość pustą, podczas instalacji klienta zostanie wyświetlony monit. W przypadku tego przykładu zachowaj ją pustą.

  7. Kliknij przycisk Dalej, aby kontynuować. Teraz możesz kontynuować standardowe procedury kreatora pakietów i wdrożeń. W tym przypadku wystarczy kliknąć przycisk Dalej , aby wszystkie pozostałe okna dialogowe.

Instalowanie serwera

Zainstaluj serwer na komputerze, na którym chcesz go uruchomić, przy użyciu utworzonego wcześniej pakietu dystrybucji. Jeśli chcesz użyć komputera programistycznego do uruchomienia serwera, nie musisz go instalować, ponieważ program Visual Basic tworzy rejestrację podczas kompilowania serwera.

Instalowanie klienta

Zainstaluj klienta na komputerze, na którym chcesz go uruchomić, przy użyciu utworzonego wcześniej pakietu dystrybucji. Ponieważ ten klient używa serwera DCOM i pozostawiono rzeczywistą lokalizację serwera pustego podczas tworzenia pakietu dystrybucyjnego, teraz musisz podać tę lokalizację. Gdy Instalator wyświetli monit o podanie tej lokalizacji, podaj nazwę komputera, na którym zainstalowano serwer.

Ustawianie zabezpieczeń serwera

Jeśli serwer został zainstalowany na komputerze z systemem Windows NT lub Windows 2000, należy skonfigurować dla niego zabezpieczenia. W tym celu należy użyć narzędzia Dcomcnfg, jak pokazano w poniższych krokach, które zakładają, że komputery klienckie i serwerowe są częścią domeny, a użytkownik zalogowany na komputerze klienckim jest zalogowany jako użytkownik domeny. Sugerowane ustawienia są tylko jedną z możliwych konfiguracji. Są one ogólne i zapewniają szeroki dostęp do serwera. Pamiętaj, że jest to tylko przykład. Podczas wdrażania rzeczywistych aplikacji, a bezpieczeństwo jest problemem dla środowiska, należy wybrać bardziej restrykcyjne opcje. Ponadto jeśli komputer używany do testowania tego przykładowego serwera jest używany do uruchamiania innych serwerów, zanotuj bieżące ustawienia przed wprowadzeniem następujących zmian i wróć do oryginalnych ustawień zaraz po zakończeniu testów.

  1. Na komputerze serwera kliknij przycisk Start , a następnie wybierz pozycję Uruchom. W oknie dialogowym Uruchamianie wpisz Dcomcnfg, a następnie kliknij przycisk OK. Aby można było uruchomić narzędzie Dcomcnfg, musisz mieć uprawnienia administratora.
  2. Wybierz kartę Właściwości domyślne i sprawdź, czy na tym komputerze jest zaznaczona opcja Włącz rozproszony com.
  3. Ustaw domyślny poziom uwierzytelniania na Połącz i ustaw domyślny poziom personifikacji na Wartość Zidentyfikuj.
  4. Wybierz kartę Zabezpieczenia domyślne.
  5. Kliknij przycisk Edytuj domyślne w panelu Uprawnienia dostępu domyślnego.
  6. Sprawdź, czy na liście znajdują się wszystkie osoby i system z uprawnieniami Zezwalaj na dostęp. Jeśli tak nie jest, możesz użyć przycisku Dodaj , aby dodać je do listy. Po zakończeniu tworzenia listy kliknij przycisk OK .
  7. Kliknij przycisk Edytuj domyślne w panelu Domyślne uprawnienia uruchamiania.
  8. Sprawdź, czy na liście znajdują się wszystkie osoby i system z uprawnieniami Zezwalaj na uruchamianie. Jeśli tak nie jest, użyj przycisku Dodaj , aby dodać je do listy. Po zakończeniu tworzenia listy kliknij przycisk OK .
  9. Wybierz kartę Aplikacje , wyróżnij serwer, DCOMDemo_Svr.Class1, a następnie kliknij przycisk Właściwości .
  10. Wybierz kartę Ogólne , ustaw pozycję Poziom uwierzytelniania na Wartość domyślna, a następnie wybierz kartę Lokalizacja . Jedyną zaznaczoną opcją powinna być opcja Uruchom aplikację na tym komputerze.
  11. Wybierz kartę Zabezpieczenia i sprawdź, czy zaznaczono opcję Użyj domyślnych uprawnień dostępu i opcji Użyj domyślnych uprawnień uruchamiania.
  12. Wybierz kartę Tożsamość, zaznacz opcję uruchamiania użytkownika, kliknij przycisk OK, aby zamknąć okno dialogowe Właściwości serwera, a następnie kliknij przycisk OK ponownie, aby zamknąć dcomcnfg. Jak widać, serwer testowy używa wszystkich ustawień domyślnych. Podczas wdrażania własnych serwerów należy zdefiniować ustawienia specyficzne dla aplikacji. Wszystkie ustawienia niestandardowe mają pierwszeństwo przed ustawieniami domyślnymi.

Teraz możesz przystąpić do testowania serwera. Na komputerze klienckim uruchom klienta, a następnie kliknij przycisk Uruchom . Powinno zostać wyświetlone okno komunikatu wskazujące czas serwera. Jeśli nie możesz pomyślnie przetestować tego przykładu, zapoznaj się z artykułem dotyczącym rozwiązywania problemów, Q269330 wymienionym w sekcji "Odwołania".