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 jede Serverinstanz in ihren eigenen Eintragsnamen exportieren. Andernfalls ist es für eine Instanz schwierig, die unterstützten Objekt-UUIDs oder Protokollsequenzen zu ändern, ohne die Informationen einer anderen Instanz zu stören.

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

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

Nachfolgende Aufrufe der Serverinstanz 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 ein Administrator ihn entfernt hat oder ein Stromausfall dazu führte, dass die Namensdienstinformationen verloren gingen. Es ist wichtig zu überprüfen, ob die Bindungspunkte im Eintrag korrekt sind; wenn ein Administrator tcp/IP-Unterstützung zu einem Computer hinzufügt, lauscht beispielsweise RPC-Server auf dieser Protokollsequenz, wenn er RpcServerUseAllProtseqsaufruft. Wenn der Server den Namendiensteintrag jedoch nicht aktualisiert, werden Clients nicht darüber informiert, dass TCP unterstützt wird.

Wenn der Client importiert, sollte er NULL- als Eintragsnamen angeben. Wenn Sie NULL- angeben, sucht die Microsoft RPC-Bibliotheksfunktionen in allen Namensdiensteinträgen in der Domäne oder Arbeitsgruppe des Clientcomputers nach der Schnittstelle, wodurch die Informationen für jede Instanz gefunden werden.

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

In diesem Fall kann ein Client eine Ressource anhand des Namens nachschlagen, indem er aus dem entsprechenden Servereintrag importiert wird; die Objekt-UUID der Ressource ist nicht erforderlich. Wenn die Ressource UUID, aber nicht der Name enthält, kann sie aus dem null Eintrag importieren.