Freigeben über


Richtlinien für die Namensdienstanwendung

Wenn Sie Ihre verteilte Anwendung entwickeln, müssen Sie den Anwendungsbenutzern eine Methode zum Angeben des Namens bereitstellen, unter dem sie die Anwendung in der Namensdienstdatenbank registrieren können. Diese Methode kann aus einer Datendatei, einer Befehlszeileneingabe oder einem Dialogfeld bestehen.

Obwohl die RPC-Namensdienstarchitektur verschiedene Methoden zum Organisieren der Servereinträge einer Anwendung unterstützt, ist sie für Nachschlagevorgänge optimiert. Daher können häufige Updates die Leistung des Namensdiensts und der Anwendung beeinträchtigen. Um unnötiges Exportieren von Informationen zu vermeiden, wählen Sie einen Entwurf aus, mit dem der Server bestimmen kann, ob sich seine Informationen in der Namensdienstdatenbank befinden. Darüber hinaus sollte jeder Server instance in seinen eigenen Eintragsnamen exportieren. Andernfalls ist es für einen instance schwierig, die unterstützten Objekt-UUIDs oder Protokollsequenzen zu ändern, ohne die Informationen eines anderen instance zu stören.

Die folgende Methode vermeidet diese Fallstricke und bietet eine gute Leistung, unabhängig vom Namensdienst, den Ihr Netzwerk verwendet.

Entwerfen Sie zunächst Die Anwendung so, dass sie beim ersten Start eines bestimmten Servers instance einen eindeutigen Servereintragsnamen auswählt und diesen Namen zusammen mit den anderen Konfigurationsinformationen der Anwendung in der Registrierung speichert. Lassen Sie dann die Bindungshandles und -Objekt-UUIDs (falls vorhanden) in den Namensdiensteintrag exportieren.

Nachfolgende Aufrufe des Server-instance sollten überprüfen, ob der Namensdiensteintrag vorhanden ist und den richtigen Satz von Objekt-UUIDs und Bindungshandles enthält. Ein fehlender Eintrag kann bedeuten, dass er von einem Administrator entfernt wurde oder dass ein Stromausfall dazu geführt hat, dass die Namensdienstinformationen verloren gehen. Es ist wichtig, zu überprüfen, ob die Bindungshandles im Eintrag richtig sind. wenn ein Administrator beispielsweise TCP/IP-Unterstützung zu einem Computer hinzufügt, lauschen RPC-Server auf dieser Protokollsequenz, wenn sie RpcServerUseAllProtseqs aufrufen. Wenn der Server den Namensdiensteintrag jedoch nicht aktualisiert, werden Clients nicht darüber informiert, dass TCP unterstützt wird.

Wenn der Client importiert, sollte er NULL als Eintragsnamen angeben. Das Angeben von NULL bewirkt, dass die Microsoft RPC-Bibliotheksfunktionen in allen Namensdiensteinträgen in der Domäne oder Arbeitsgruppe des Clientcomputers nach der Schnittstelle suchen und so die Informationen für jede instance finden.

Wenn Sie Objekt-UUIDs verwenden, um bekannte Objekte wie Drucker darzustellen, können Sie eine Variante dieser Methode verwenden. Anstatt Bindungen in einen Eintrag zu exportieren, entwerfen Sie Ihre Anwendung so, dass jede instance einen Eintrag für jedes unterstützte Objekt erstellt, z. B. "/.::/ printers/Laser1" und "/.:/ drucker/Laser2." Lassen Sie dann den Server seine Bindungshandles zusammen mit der für diesen Eintrag relevanten Objekt-UUID in jeden Servereintrag exportieren.

In diesem Fall kann ein Client eine Ressource anhand des Namens suchen, indem er aus dem entsprechenden Servereintrag importiert wird. Die Objekt-UUID der Ressource ist nicht erforderlich. Wenn es über die Ressourcen-UUID, aber nicht über den Namen verfügt, kann sie aus dem NULL-Eintrag importieren.