home *** CD-ROM | disk | FTP | other *** search
- DCOM95 1.3
- Anmerkungen zu dieser Version
- Zuletzt ge?dert: 14. September 1998
-
- DCOM95 unterst?zt das DCOM-Protokoll (Distributed Component Object
- Model) unter Microsoft(r) Windows(r) 95. Das DCOM-?ertragungsprotokoll
- erm?licht eine zuverl?sige, sichere, effiziente und transparente
- Daten?ertragung zwischen COM-Komponenten (Component Object Model) wie
- ActiveX(r)-Steuerelemente, Skripts und Java-Applets, die sich in einem
- LAN, einem WAN oder im Internet auf verschiedenen Computern befinden.
- Mit Hilfe von DCOM k?nen die einzelnen Prozesse einer Anwendung an
- unterschiedlichen Orten verteilt sein, je nachdem, wo sie in Anbetracht
- ihrer jeweiligen Aufgabe am sinnvollsten eingesetzt werden.
-
- Genauere Informationen zu DCOM finden Sie in der ?ersicht ?er DCOM unter:
- http://www.microsoft.com/com/.
-
- Inhalt
- ======
- I. Neue Funktionen
- II. Behobene Probleme
- III. Bekannte Probleme
- IV. Unterschiede zu DCOM f? Windows NT
- V. Weitervertrieb
- VI. Technischer Support und weitere Informationen
- VII. Dateiliste
-
- I. Neue Funktionen
- ------------------
-
- Ersetzen von DCOM95 durch ?tere Version nicht mehr zul?sig
-
- Bisher konnte eine neuere Version von DCOM95 durch eine ?tere
- Version ersetzt werden. Ab der vorliegenden Version werden bei der
- Installation jedoch die Versionsnummern ?erpr?t. Eine ?tere Version
- kann damit nicht mehr ?er eine neuere Version installiert werden.
- Dadurch werden Probleme mit nicht miteinander kompatiblen DLL-Versionen
- vermieden.
-
- ?erwachung von Visual Studio 6.0-Prozessen
-
- Zur Unterst?zung von Visual Studio 6.0 stellt DCOM95
- ?erwachungsinformationen zur Verf?ung, so dass die Entwickler das
- Verhalten, die Leistung und die Struktur ihrer Anwendung besser
- verstehen k?nen. Wenn Sie Visual Studio Analyzer unter Windows 95
- verwenden, sollten Sie immer die vorliegende Version von DCOM95
- verwenden.
-
- Setup-Programm erstellt neues Verzeichnis
-
- Das Setup-Programm erstellt im Systemverzeichnis ein Unterverzeichnis
- mit der Bezeichnung DCOM95. Dort werden der Endbenutzer-Lizenzvertrag
- und weitere Dateien gespeichert. Au?rdem wird als Unterverzeichnis
- von DCOM95 das Verzeichnis OLDOLE erstellt, in dem eine Sicherungskopie
- des alten DCOM95-Programms bzw. der OLE-Bin?dateien erstellt wird.
-
- COM Internet Services (CIS)
-
- Mit Hilfe von COM Internet Services (CIS) k?nen Clients und Server
- ?er COM eine Internetverbindung aufnehmen. CIS besteht aus mehreren
- Komponenten:
- * Einem neuen DCOM-Protokoll: Tunneled TCP
- * Einem neuen Monikertyp: OBJREF-Moniker
- * Einem neuen Dienstprogramm: CISCNFG
-
- F? die CIS-Unterst?zung f? Clients unter Windows 95 m?sen Sie
- sowohl DCOM95 als auch DCOMCFG installieren. ─ndern Sie dann den
- Registrierungsschl?sel, der das Protokoll f? Remote-Prozesse angibt,
- mit Hilfe des CISCNFG-Tools (dieses Tool wird bei der Installation
- der DCOM-Konfiguration installiert). Geben Sie in der Eingabeaufforderung
- folgendes ein:
- ciscnfg <Protokoll>
-
- Dabei steht "<Protokoll>" f?:
- * rpc - RPC wird verwendet
- * http - HTTP verwendet
- * tcp_http - der Client versucht zuerst, die Verbindung ?er TCP
- herzustellen. Nach einem Timeout des Servers wird HTTP verwendet.
-
- Wenn Sie den Befehl "ciscnfg" ohne Argument eingeben, werden Hinweise
- zum Gebrauch des Befehls angezeigt.
-
- F? das Tunneled TCP-Protokoll werden keine SDK-Updates ben?igt.
-
- F? OBJREF-Moniker gibt es Updates.
-
- CreateObjrefMoniker
-
- Hierdurch wird ein OBJREF-Moniker basierend auf einem Zeiger zu einem
- Objekt erstellt.
- WINOLEAPI CreateObjrefMoniker(
- LPUNKNOWN pUnk, //Zeiger zum Objekt
- LPMONIKER *ppMk //Adresse des Zeigers zum OBJREF-Moniker
- );
-
- Parameter
-
- pUnk
-
- Zeiger zur IUnknown-Schnittstelle des Objekts, das der Moniker
- darstellen soll.
-
- ppMk
-
- Adresse eines Zeigers zur IMoniker-Schnittstelle des gerade
- erstellten OBJREF-Monikers.
-
- R?kgabewerte
-
- Diese Funktion unterst?zt die standardmΣ▀igen R?kgabewerte
- E_OUTOFMEMORY und E_UNEXPECTED sowie folgenden R?kgabewert:
-
- S_OK
-
- Die Erstellung des OBJREF-Monikers war erfolgreich.
-
- Hinweise
-
- Clients verwenden OBJREF-Moniker, um einen gemarshallten Zeiger auf
- ein ausgef?rtes Objekt im Adressraum des Servers abzurufen.
- Der Server erstellt meistens erst mit "CreateObjrefMoniker" einen
- OBJREF-Moniker, ruft "IMoniker::GetDisplayName" auf und gibt dann den
- Moniker frei. Der Anzeigename f? einen OBJREF-Moniker hat folgende Form:
- OBJREF:nnnnnnnn
-
- Dabei steht "nnnnnnnn" f? einen beliebig langen base-64-Code, der
- den Standort des Computers, den Prozess-Endpunkt und die
- Schnittstellenzeiger-ID (Interface Pointer ID, IPID) des ausgef?rten
- Objekts verkapselt.
-
- Der Anzeigename kann anschlie?nd als Text an den Client ?ertragen
- werden. Hierzu wird er z. B. oft in eine HTML-Seite eingef?t, die
- vom Client heruntergeladen wird.
-
- Der Client kann den Anzeigenamen an "MkParseDisplayName" weitergeben.
- Diese Funktion erstellt auf Basis des Anzeigenamens einen OBJREF-Moniker.
- Durch einen Aufruf der IMoniker::BindToObject-Methode des Monikers
- wird ein gemarshallter Zeiger zur ausgef?rten Version auf dem Server
- abgerufen. Beispielsweise kann eine serverbasierte COM-Komponente auf
- einer Active Server Page einen OBJREF-Moniker erstellen, seinen
- Anzeigenamen abrufen und diesen in die HTML-Ausgabe schreiben, die
- an den Client-Browser gesendet wird. ?er den Anzeigenamen kann ein
- clientbasiertes Skript dann auf das ausgef?rte Objekt zugreifen. Ein
- clientbasiertes Visual Basic-Skript k?nte den Anzeigenamen in der
- Variablen "strMeinName" speichern und die folgende Zeile einbinden:
- objMeineVersion = GetObject(strMeinName)
-
- Das Skriptmodul ruft intern "MkParseDisplayName" und "IMoniker::BindToObject"
- auf. Das Skript kann dadurch ?er "objMeineVersion" direkt auf das ausgef?rte
- Objekt zugreifen.
-
- Wenn das ausgef?rte Objekt statische Schnittstellenzeiger-IDs verwendet
- und der Serverprozess immer auf demselben Computer an einem bekannten
- Endpunkt ausgef?rt wird, lautet der Anzeigename des OBJREF-Monikers
- immer gleich. Der Server kann den Anzeigenamen in diesem Fall speichern,
- statt ihn bei jeder Anforderung nach dem Objekt neu zu berechnen.
-
- IMoniker - Implementierung des OBJREF-Monikers
-
- OBJREF-Moniker sind Verweise auf Objekte, die auf einem lokalen oder
- remoten Server ausgef?rt werden, der nicht in den Prozess eingebunden
- ist (prozessextern). Der Moniker bezeichnet das korrekte Objekt und
- den Computer, auf dem das Objekt ausgef?rt wird.
-
- Ein OBJREF-Moniker ist in vielem einem Zeigermoniker ?nlich, mit der
- Ausnahme, dass das ausgef?rte Objekt prozessextern ist. Bei einem
- OBJREF-Moniker kann jeder Client "IMoniker::BindToObject" aufrufen
- und mit dem dadurch erhaltenen Zeiger das ausgef?rte Objekt aufrufen,
- unabh?gig davon, wo sich dieses Objekt befindet.
-
- Ein weiterer wichtiger Unterschied besteht darin, dass der Anzeigename
- eines OBJREF-Monikers in eine HTML-Seite eingebettet werden und das
- vom Moniker dargestellte ausgef?rte Objekt in ein Clientskript,
- Applet oder ActiveX-Steuerelement eingebunden werden kann.
-
- Anwendungsm?lichkeiten
-
- Ein OBJREF-Moniker wird im wesentlichen dazu verwendet, per Internet
- Zugriff auf ein ausgef?rtes Objekt auf einem anderen Computer zu
- erhalten. Eine Active Server Page oder eine andere Anwendung zum
- Erstellen von dynamischen HTML-Seiten f?t den Anzeigenamen eines
- OBJREF-Monikers in einen Parameter eines Applets oder eines
- ActiveX-Steuerelements ein. Dieses Applet oder Steuerelement ruft
- "CreateObjrefMoniker" auf, um auf Basis des Anzeigenamens einen
- OBJREF-Moniker zu erstellen. Mit "IMoniker::BindToObject" kann das
- Applet oder Steuerelement anschlie?nd auf das ausgef?rte Objekt
- zugreifen. Zuletzt wird dem Client der Active Server Page ein Zeiger
- zum ausgef?rten Objekt gemarshallt.
-
- Hinweise
-
- IMoniker::BindToObject. Bei OBJREF-Monikern muss der Parameter
- "pmkToLeft" NULL sein. Da der OBJREF-Moniker ein ausgef?rtes Objekt
- darstellt, gibt es keine Aktivierung. Wenn das dargestellte Objekt
- nicht mehr ausgef?rt wird, schl?t "BindToObject" fehl; R?kgabewert:
- E_UNEXPECTED.
-
- IMoniker::BindToStorage. Diese Methode ruft einen gemarshallten Zeiger
- zur angeforderten Schnittstelle auf dem Speichermedium ab, auf dem
- sich das ausgef?rte Objekt befindet. Da der OBJREF-Moniker ein
- ausgef?rtes Objekt darstellt, gibt es keine Aktivierung. Wenn das
- dargestellte Objekt nicht mehr ausgef?rt wird, schl?t "BindToStorage"
- fehl; R?kgabewert: E_UNEXPECTED.
-
- IMoniker::Reduce. Von dieser Methode wird MK_S_REDUCED_TO_SELF
- zur?kgegeben und derselbe Moniker zur?kgeleitet.
-
- IMoniker::ComposeWith. Wenn "pmkRight" ein Anti-Moniker ist, ist der
- zur?kgegebene Moniker NULL. Wenn "pmkRight" aus mehreren Komponenten
- zusammengesetzt ist und die am weitesten links stehende Komponente ein
- Anti-Moniker ist, besteht der zur?kgegebene Moniker aus derselben
- Zusammensetzung wie "pmkRight" mit Ausnahme des Anti-Monikers ganz links;
- dieser wird entfernt. Wenn f? "pmkRight" beide Bedingungen nicht
- zutreffen, wird von der IMoniker::ComposeWith-Methoder der Parameter
- "fOnlyIfNotGeneric" ?erpr?t. Wenn dieser Parameter FALSE ist, werden
- die beiden Moniker zusammengesetzt; wenn er TRUE ist, wird "*ppmkComposite"
- auf NULL gesetzt und MK_E_NEEDGENERIC zur?kgegeben.
-
- IMoniker::Enum. Von dieser Methode wird S_OK zur?kgegeben und
- "ppenumMoniker" auf NULL gesetzt.
-
- IMoniker::IsEqual. Diese Methode gibt S_OK zur?k, falls "*pmkOther"
- ein OBJREF-Moniker ist und die Pfade zu den beiden Monikern
- ?ereinstimmen (ohne Beachtung der Gro? und Kleinschreibung).
- Andernfalls wird S_FALSE zur?kgegeben.
-
- IMoniker::Hash. Diese Methode berechnet einen Hashwert f? den
- Moniker.
-
- IMoniker::IsRunning. Da OBJREF-Moniker ein ausgef?rtes Objekt
- darstellen, gibt diese Methode fast immer TRUE zur?k. FALSE wird nur
- zur?kgegeben, wenn der letzte Aufruf fehlschlug und es daher bekannt
- ist, dass das Objekt nicht mehr ausgef?rt wird. "pmkToLeft" wird von
- dieser Methode nicht beachtet.
-
- IMoniker::GetTimeOfLastChange. Diese Methode gibt E_NOTIMPL zur?k.
-
- IMoniker::Inverse. Diese Methode gibt einen Anti-Moniker zur?k
- (d.h. das Ergebnis des Aufrufs "CreateAntiMoniker").
-
- IMoniker::CommonPrefixWith. Wenn die beiden Moniker identisch sind,
- wird von dieser Methode MK_S_US zur?kgegeben und "*ppmkPrefix" auf
- NULL gesetzt. Wenn der andere Moniker kein OBJREF-Moniker ist, werden
- beide Moniker an die MonikerCommonPrefixWith-Funktion weitergeleitet.
- Diese Funktion verarbeitet die Moniker korrekt, wenn einer der beiden
- aus mehreren Komponenten zusammengesetzt ist.
-
- Wenn die beiden Moniker kein identisches Pr?ix haben, wird MK_E_
- zur?kgegeben.
-
- IMoniker::RelativePathTo. Diese Methode gibt E_NOTIMPL zur?k.
-
- IMoniker::GetDisplayName. Diese Methode ruft den Anzeigenamen
- des OBJREF-Monikers ab. Der Anzeigename ist ein 64-bit-Code,
- der den Standort des Computers, den Prozess-Endpunkt und die
- Schnittstellenzeiger-ID (Interface Pointer ID, IPID) des ausgef?rten
- Objekts verkapselt. Aus (k?ftigen) Kompatibilit?sgr?den werden im
- Anzeigenamen nur Zeichen verwendet, die als Teil eines URL angegeben
- werden k?nen.
-
- IMoniker::ParseDisplayName. Wenn "pmkToLeft" nicht NULL ist, gibt
- diese Methode MK_E_SYNTAX zur?k.
-
- IMoniker::IsSystemMoniker. Von dieser Methode wird S_OK zur?kgegeben
- und MKSYS_OBJREFMONIKER zur?kgeleitet.
-
- Unterst?zung f? VB6.0-Datentypen
-
- In Visual Basic(r) 6.0 k?nen Visual Basic-Daten vom Typ Variant
- benutzerdefinierte Datenstrukturen enthalten. DCOM95 unterst?zt dies
- nun auch als Remote-Daten.
-
- II. Behobene Probleme
- ---------------------
-
- Engpass beim Entladen mehrerer Module
-
- Beim gleichzeitigen Entladen mehrerer Module trat in fr?eren Versionen
- von DCOM95 ein Engpass auf. Abh?gig von der Reihenfolge, in der die
- Module entladen wurden, trat u. U. eine Zugriffsverletzung auf. Dies
- wurde in der vorliegenden Version von DCOM95 behoben.
-
- Keine Reaktion w?rend der Verhandlung des RPC-Protokolls
-
- Fr?ere Versionen von DCOM95 verarbeiteten keine Meldungen, w?rend
- die RPC-Protokolle ausgehandelt wurden. Wenn der Benutzer w?rend des
- Aushandelns eine andere Anwendung aufrief, schien der Computer keine
- Reaktion zu zeigen. Nach 30 Sekunden wurden die Meldungen wieder
- verarbeitet. Dieses Verhalten wurde in der neuesten Version von DCOM95
- ge?dert. Jetzt k?nen Anwendungen auch aufgerufen werden, w?rend die
- RPC-Protokolle ausgehandelt werden.
-
- Keine Reaktion, wenn neue Anwendung aufgerufen wird
-
- RPC erstellt im Multiple-Threaded Apartment (MTA) ein verstecktes
- Fenster, das DCOM zum Verarbeiten von Meldungen nicht ben?igt.
- Wenn der Benutzer vom Desktop aus eine neue Anwendung aufruft, sendet
- Windows eine Meldung an alle anderen Fensterzugriffsnummern, in der
- sie von dem neuen Ereignis benachrichtet werden. Windows erwartet eine
- Antwort auf diese Meldung. Bei den fr?eren Versionen von DCOM95
- antwortete das versteckte RPC-Fenster oft nicht, und Windows reagierte
- nicht mehr. Dies wurde in der vorliegenden Version von DCOM95 ge?dert.
-
- Heapbesch?igung bei mehreren IP-Adressen
-
- Wenn DCOM95 bisher auf einem Computer mit mehreren IP-Adressen
- ausgef?rt wurde, lief der IP-Adressenpuffer u. U. ?er, und der Heap
- wurde besch?igt. Dieses Problem wurde behoben.
-
- Nur erste IP-Adresse verwendet
-
- Wenn DCOM95 bisher auf einem Computer mit zwei Netzwerkkarten (und
- deshalb zwei IP-Adressen, eine pro Karte) ausgef?rt wurde, erkannte
- DCOM95 nur eine Netzwerkkarte. In der vorliegenden Version wird die
- zweite Karte verwendet, falls die erste nicht funktioniert.
-
- RPC verwendet jetzt auch mehrere IP-Adressen
-
- Bei einem Aufruf einer Remote-Prozedur auf einem Computer mit mehreren
- IP-Adressen wird jetzt auch versucht, die Verbindung ?er die weiteren
- IP-Adressen aufzunehmen, falls die erste IP-Adresse nicht angenommen
- wurde.
-
- Dateimoniker unterst?zen zus?zliche Pfadsyntax
-
- Dateimoniker k?nen jetzt auch aus Argumenten der Form
- "<startverz><relativerpfad>" erstellt werden, z. B.
- "C:\bug\bug\..\..\foo.jpg". In DCOM95 1.1 waren nur entweder
- relative (z. B. "..\..\foo.jpg") oder absolute Pfade
- (z. B. "C:\foo.jpg") zul?sig.
-
- Allgemeiner Schutzfehler beim Entladen von Oleaut32.dll
-
- Bisher trat ein allgemeiner Schutzfehler auf, wenn Oleaut32.dll vor
- einem Aufruf von "CoUninitialize" entladen wurde. Dies trat meistens
- dann auf, wenn eine VB-Anwendung ein Steuerelement erstellte, das
- statisch mit Oleaut32.dll verkn?ft war, und das Steuerelement dann
- freigab, bevor "CoUninitialize" aufgerufen wurde. Dieser Vorgang l?t
- in dieser Version von DCOM95 keinen allgemeinen Schutzfehler mehr aus.
-
- Marshallen und R?kg?gigmachen von Visual Basic-Datentypen
-
- Das Marshallen und R?kg?gigmachen des Marshallens bestimmter Visual
- Basic-Datentypen wurde verbessert. Datenfeldparameter ?er 64 KB sind
- jetzt m?lich. Strukturen, die unter Verwendung von Aliasen zum Typ
- definiert wurden, werden jetzt korrekt gemarshallt bzw. das Marshallen
- wird korrekt r?kg?gig gemacht.
-
- Zu oft gel?chte Atome in "OleUninitialize"
-
- Dieser Fehler trat in Anwendungen auf, die "OleInitialize" und
- "OleUninitialize" mehrfach aufriefen. W?rend der Initialisierung
- f?t OLE viele Atome f? DDE RPC hinzu. Wenn diese Atome bereits von
- einem anderen Thread hinzugef?t wurden, werden sie nicht noch einmal
- hinzugef?t. W?rend der Deinstallation wurden die Atome jedoch immer
- gel?cht, ohne dass die Zugriffsnummern gel?cht wurden. Wenn
- "OleInitialize" das n?hste Mal aufgerufen wurde, waren die alten
- Zugriffsnummern noch vorhanden, obwohl die zugeh?igen Atome bereits
- gel?cht waren; OLE f?te die Atome deshalb nicht wieder hinzu. Aus
- diesem Grund waren alle OLE-Atome nach mehrmaligem Aufrufen von
- "OleInitialize" und "OleUninitialize" ung?tig. Dieses Problem wurde
- behoben.
-
- ADO-Server fahren ordnungsgemΣ▀ herunter
-
- Active Data Objects (ADOs) verwenden Zeigermoniker, um einen
- Serverprozess zu starten. DCOM95 z?lte bisher die Verweise auf
- Moniker falsch, da Z?lung bei 1 statt bei 0 begann. Der Zeigermoniker
- hatte deshalb immer mehr als 0 Verweise und konnte deshalb nicht
- freigegeben werden. Der ADO-Server konnte deshalb nicht herunterfahren,
- auch wenn keiner der Zeiger zum Server mehr verwendet wurde. Dieses
- Problem wurde behoben.
-
- "CoCreateInstance" funktioniert mit eigenem DNS-Namen
-
- Bisher konnte "CoCreateInstance" nicht mit dem g?tigen Namen des
- lokalen Computers aufgerufen werden. Dies wurde behoben, und
- "CoCreateInstance" funktioniert nun ordnungsgemΣ▀.
-
- Langsame ?ertragung auf Speichersystem bei gro?r Verbunddatei
-
- Die ?ernahmezeit auf ein im STGM_TRANSACTED-Modus ge?fnetes
- Stammspeichersystem war bisher sehr langsam, wenn die Verbunddatei
- sehr gro?war (z. B. 400 MB). Die Grenzen der internen Seitentabelle
- wurden erh?t, und das Problem wurde damit beseitigt.
-
- Exportieren von Objekten von neuerstelltem MTA
-
- Bisher konnte ein Server ein Objekt aus einem Multi-Threaded
- Apartment (MTA) nicht erstellen, wenn das MTA im gleichen Prozess
- bereits einmal erstellt worden war. Dies wurde behoben. Wenn der
- Server jetzt ein MTA erstellt, es l?cht und sp?er erneut erstellt,
- k?nen Objekte aus dem MTA exportiert werden.
-
- Mehrere Kopien von VB4-exe-Dateien
-
- Wenn mit DCOM95 v1.1 dieselbe mit Visual Basic 4 kompilierte Datei
- mehrmals aufgerufen und anschlie?nd in beliebiger (au?r umgekehrter)
- Reihenfolge wieder geschlossen wurde, reagierte die letzte ausf?rbare
- Datei nicht mehr. Dasselbe trat bei Formularen in Microsoft Exchange
- auf. Das Problem wurde behoben, und VB4-Dateien k?nen jetzt in
- beliebiger Reihenfolge geschlossen werden.
-
- Erweiterte Zeichen in Visual Basic-Dateinamen
-
- Visual Basic-Module oder -Klassen mit erweiterten Zeichen (einer
- beliebigen Sprache) im Namen konnten oft auf Computern mit anderem
- Gebietsschema nicht ge?fnet werden. Dies wurde behoben.
-
- III. Bekannte Probleme
- ----------------------
-
- Corel WordPerfect Suite 7: Installation verursacht ung?tige Seite
-
- Wenn Sie Corel WordPerfect Suite 7 auf einem Windows 95-System mit
- DCOM95 installieren, wird u. U. w?rend der Installation ein Fehler
- wegen einer ung?tigen Seite in PfOd70.pfc angezeigt. Schlie?n Sie
- die Meldung einfach. Das Setup-Programm f?rt ohne weitere Probleme
- fort.
-
- Microsoft Access 95: Datenbankreplikation funktioniert nicht
-
- Wenn Sie auf einem Computer mit DCOM95 versuchen, in Microsoft
- Access 95 eine Datenbank zu replizieren, wird u. U. die folgende
- Fehlermeldung angezeigt:
-
- Microsoft Access kann diesen Vorgang nicht abschlie?n, da es die
- DLL-Datei (Dynamic-Link Library) Msjtrclr nicht finden oder
- initialisieren kann.
-
- Dieses Problem wird von Microsoft Access 95 verursacht. Sie k?nen
- das Problem umgehen, wenn Sie ein Programm schreiben, das statt des
- Replikationstools das Access-Objektmodell nutzt, oder indem Sie zur
- Replikation den Aktenkoffer verwenden.
- Dieses Problem tritt in Microsoft Access 97 nicht auf.
-
- WordPerfect
-
- Wenn in einem WordPerfect-Dokument eine Corel-Kalkulationstabelle
- einbettet ist und diese Kalkulationstabelle ein weiteres eingebettetes
- Objekt enth?t (z. B. eine Bitmap), wird beim Schlie?n des innersten
- Objekts u. U. eine Warnung mit der Meldung angezeigt, dass die
- Netzwerkverbindung getrennt wurde. Diese Warnung wird vier- bis
- f?fmal angezeigt, ist aber ohne Bedeutung. Schlie?n Sie einfach
- die Warnungen, und fahren Sie mit Ihrer Arbeit fort.
-
- MTA-Clients, die BSTR-Konvertierungsroutinen verwenden, blockieren
- DDE-Meldungen
-
- Automatisierte BSTR-Konvertierungsroutinen (z. B. BstrFromR4) erstellen
- versteckte Fenster, um die Typkonvertierung zu erleichtern. Diese Fenster
- werden von der Windows-Nachrichtenwarteschlange nicht bedient. Wenn ein
- solches Fenster von einem MTA-Client (Multiple-Threaded Apartment) aus
- erstellt wird, werden die DDE-Meldungen u. U. blockiert. Der Clientthread
- ist laut MTA-Programmierungsmodell nicht dazu verpflichtet, die
- Nachrichtenwarteschlange zu bedienen. Wenn die Warteschlange aber nicht
- bedient wird, werden globale Broadcastmeldungen von diesem Hauptebenenfenster
- blockiert.
-
- Es gibt zwei M?lichkeiten, dieses Problem zu umgehen:
- die BSTR-Konvertierungsroutinen werden von einem STA-Client
- (Single-Threaded Apartment) aus aufgerufen, oder der MTA-Thread des
- Clients muss sich wie ein STA-Thread verhalten (ein STA-Thread bedient
- die Nachrichtenwarteschlange immmer). Wenn die Blockierung an einer
- Win32-Zugriffsnummer auftritt, muss der Thread die Funktion
- "MsgWaitForMultipleObjects" aufrufen, so dass die Windows-Meldungen
- gleichzeitig verarbeitet werden.
-
- DLL-Pfadnamen ?er 127 Zeichen verursachen Fehler
-
- Eine DLL mit einem Pfadnamen, der 128 oder mehr Zeichen lang ist,
- kann zwar registriert werden, aber beim Zugriff auf ein von dieser
- DLL unterst?ztes Objekt wird von "CoCreateInstance" und
- "CoGetClassObject" ein Fehler zur?kgegeben (REGDB_E_CLASSNOTREG).
-
- IV. Unterschiede zu DCOM f? Windows NT
- ---------------------------------------
-
- Sicherheit in DCOM95
-
- Die wesentlichen Funktionen und die Schnittstelle (Application
- Programming Interface, API) von DCOM95 wird unter Windows 95 und
- unter Windows NT 4.0/5.0 identisch. Aufgrund der unterschiedlichen
- Sicherheitsstrukturen der Betriebssysteme sind jedoch einige
- Sicherheitsfunktionen anders. Es wird empfohlen, die vorgegebenen
- Sicherheitseinstellungen des Systems zu verwenden. Au?rdem muss
- auf Freigaben in einem Dateisystem die Sicherheit auf Benutzerebene
- eingestellt werden (siehe unten).
-
- Folgende Dienste sind verf?bar. Mit ihnen k?nen auch die vorgegebenen
- Sicherheitseinstellungen au?r Kraft gesetzt werden:
- * CoInitializeSecurity
- * CoQueryAuthenticationService
- * CoQueryProxyBlanket
- * CoSetProxyBlanket
- * CoQueryClientBlanket
- * IClientSecurity Interface
- * IServerSecurity Interface
-
- Manche Funktionen von DCOM f? Windows NT sind unter Windows 95
- jedoch nicht verf?bar, da die Sicherheitsstruktur von Windows 95
- anders aufgebaut ist.
-
- Hierbei ist besonders das Fehlen von Sicherheitsfunktionen in der
- Win32-API zu beachten - z. B. k?nen keine Zugriffskontrolllisten
- (Access Control Lists, ACL) erstellt werden, und es gibt keine
- AccessCheck-Funktion - sowie das Fehlen eines Sicherheitskontexts
- f? Threads und Prozesstoken. Unter Windows 95 ist hierf? keine
- native Unterst?zung vorgesehen. DCOM95 unterst?zt deshalb keinen
- Identit?swechsel (also die Hilfsfunktionen "CoImpersonateClient"
- und "CoRevertToSelf" ?er die IServerSecurity-Schnittstelle), der
- unter Windows NT 4.0 auf Thread- und Prozesstokensicherheit beruht.
- Identit?swechsel werden oft bei der automatischen ?erpr?ung des
- Zugriffs auf Ressourcen mit eingeschr?kten Zugriffsrechten verwendet,
- z. B. auf das Dateisystem, andere Prozesse oder das Netzwerk. Unter
- Windows 95 kann der Zugriff auf diese Ressourcen nicht beschr?kt werden.
-
- DCOM95 verf?t jedoch ?er verschiedene Hilfsobjekte f?
- Zugriffskontrollfunktionen, die zur ?erpr?ung des Zugriffs durch
- Remote-Clients auf System- oder benutzerdefinierte Ressourcen und
- Daten verwendet werden k?nen. Diese Hilfsobjekte werden vom
- Systemobjekt "CLSID_DCOMAccessControl" ausgef?rt, das die
- IAccessControl-Schnittstelle verwendet.
-
- "IAccessControl" sollte immer zur Verwaltung der Sicherheitsrechte
- verwendet werden, wenn die Portierung zwischen Windows 95/98 und
- Windows NT wichtig ist. Das "CLSID_DCOMAccessControl"-Objekt ist in
- allen Versionen von DCOM95 sowie in Windows NT 4.0 SP2 und sp?er
- verf?bar. Informationen zu "IAccessControl" finden Sie in der Platform
- SDK-Dokumentation.
-
- Start- und Zugriffssicherheit
-
- Die ?erpr?ung der Startberechtigung von Servercode wird von DCOM95
- nicht unterst?zt, da das Starten von Servern nicht unterst?zt wird.
- Server und Klassen m?sen bereits ausgef?rt werden, damit
- Remote-Clients Verbindung zu ihnen aufnehmen und sie verwenden k?nen.
-
- DCOM95 kann zu bereits ausgef?rten Servern und Klassen Verbindung
- aufnehmen. Die Zugriffssicherheit wird ?er den Registrierungsschl?sel
- "\APPID\{.}\AccessPermissions" unterst?zt und ?er das Tool DCOMCNFG
- oder w?rend der Installation oder Konfiguration des Servercodes
- angepasst. Nichtauthentifizierte Benutzer k?nen Server verwenden,
- wenn die Klasse f? die Unterst?zung nichtauthentifizierter
- Verbindungen konfiguriert ist (?er statische Konfigurationstools
- oder dynamisch ?er die CoInitializeSecurity-Funktion). Au?rdem
- k?nen Zugriffskontrolllisten erstellt werden, die definieren,
- welche Benutzer und Gruppen auf bestimmte Dienste zugreifen k?nen.
-
- Authentifizierungsebenen
-
- DCOM95-Clients k?nen DCOM-Aufrufe unter Verwendung jeder
- beliebigen Authentifizierungsebene durchf?ren. DCOM95-Server
- oder -Clients, die einen R?kruf erhalten, k?nen nur DCOM-Aufrufe
- mit der Authentifizierungsebene RPC_C_AUTHN_LEVEL_NONE oder
- RPC_C_AUTHN_LEVEL_CONNECT annehmen.
-
- Transportprotokolle
-
- DCOM95 unterst?zt nur die Verbindung ?er TCP. Wenn das
- TCP-IP-Protokoll nicht installiert ist, kann DCOM95 das COM-Protokoll
- zu einem anderen Computer nicht unterst?zen.
-
- Registrierungseinstellungen
-
- Von DCOM95 werden unter HKEY_LOCAL_MACHINE\Software\Microsoft\OLE
- folgende Registrierungsschl?sel eingerichtet:
-
- EnableDCOM (Standardwert: "Y"). Dieser Schl?sel aktiviert DCOM
- auf diesem Computer. Wenn dieser Wert "N" lautet, kann der Computer
- keine Verbindung zu Objekten auf Remote-Computern aufnehmen oder
- sie aktivieren; Remote-Computer k?nen keine Verbindung zu Objekten
- auf dem lokalen Computer aufnehmen. Wenn dieser "Y" lautet, ist
- entweder die Client-Verbindung vom lokalen Computer zu remoten
- Objekten (wenn EnableRemoteConnect='N' ist; siehe unten) oder die
- volle Client/Server-Verbindung m?lich (wenn EnableRemoteConnect='Y';
- siehe unten).
-
- EnableRemoteConnect (Standardwert: "N"). Dieser Schl?sel macht es
- COM-Servern m?lich, Remote-Clients zu unterst?zen. Wenn dieser Wert
- "Y" lautet, k?nen Verweise zu Schnittstellen lokaler Objekte zu
- Remote-Clients weitergegeben werden, und Remote-Clients k?nen
- Verbindung zu ausgef?rten Objekten aufnehmen. Wenn dieser Wert "N"
- lautet, kann der Computer Verbindung zu remoten Objekten aufnehmen,
- aber nicht als Server agieren: die Verbindung zu ausgef?rten Objekten
- ist nicht m?lich.
-
- Unter HKEY_CLASSES_ROOT\CLSID wird der folgende
- Registrierungsschl?sel eingerichtet:
-
- {bdc67890-4fc0-11d0-a805-00aa006d2ea4}\InstalledVersion.
- Dieser Schl?sel enth?t die Versionsnummer von DCOM95 im Format
- "a,b,c,d". Anhand dieses Werts stellt Internet Component Download
- fest, ob DCOM95 installiert ist. Der Wert wird bei der Installation
- in die Registrierung eingef?t und sollte nicht ge?dert werden.
-
- Windows 95 als Remote-Server
-
- Windows 95 kann als Remote-Server agieren. Dabei ist allerdings
- folgendes zu beachten:
- * Starten wird nicht unterst?zt. Der Serverprozess muss bereits
- ausgef?rt werden, damit ein Client zu ihm Verbindung aufnehmen
- kann.
- * Wenn eine sichere Verbindung ben?igt wird, muss auf dem Server
- (und f? R?krufe auch auf dem Client) die Zugriffssteuerung
- auf Benutzerebene eingestellt und ein
- Sicherheits-Dienstanbieter angegeben sein.
- * Der Registrierungsschl?sel "EnableRemoteConnect" muss den Wert
- "Y" haben.
-
- DCOM95 wurde in Verbindung mit dem Sicherheits-Dienstanbieter der
- Windows NT-Dom?e ausf?rlich getestet. Wenn Sie einen anderen
- Sicherheits-Dienstanbieter verwenden, treten u. U. Probleme auf.
-
- Zum Einrichten der Zugriffssteuerung auf Benutzerebene muss Filesec.vxd
- installiert sein. Diese Datei wird bei der Installation der Datei- und
- Druckerfreigabe auf Windows 95-Systemen installiert.
-
- ?fnen Sie zum Aktivieren der Zugriffssteuerung auf Benutzerebene das
- Dialogfeld "Netzwerk" in der Systemsteuerung, klicken Sie auf die
- Registerkarte "Zugriffssteuerung", aktivieren Sie das Kontrollk?tchen
- "Zugriffssteuerung auf Benutzerebene", und geben Sie den Namen der
- Sicherheitsdom?e ein. Unter Umst?den hat dies Auswirkungen darauf,
- wie Sie auf im Netzwerk freigegebene Verzeichnisse zugreifen. Weitere
- Informationen hierzu finden Sie in der Onlinedokumentation. Wenn es im
- Dialogfeld "Netzwerk" keine Registerkarte "Zugriffssteuerung" gibt,
- m?sen Sie einen Netzwerk-Clientservice installieren. Informationen
- zur Installation eines Netzwerkclients finden Sie in der Onlinehilfe
- unter dem Stichwort "Netzwerkclients, Einrichten".
-
- V. Weitervertrieb
- -----------------
-
- Informationen zum Weitervertrieb von DCOM95 finden Sie in den
- Richtlinien zum Weitervertrieb im Endbenutzer-Lizenzvertrag (license.txt).
-
- VI. Technische Unterst?zung und weitere Informationen
- ------------------------------------------------------
-
- Geb?renpflichtige Unterst?zung
-
- Die Anwendungsentwicklung mit Hilfe von DCOM95 wird von Microsofts
- Technischem Support unterst?zt. Wenn Sie einen Premier Level- oder
- einen Priority Level-Supportvertrag abgeschlossen haben, k?nen Sie
- sich jederzeit an den Technischen Support wenden. Sie k?nen aber auch
- einzelne Priority Support-Scheine erwerben (dies entspricht im wesentlichen
- einer einmaligen Geb?r pro Frage). Wenn Sie Fragen zu den Angeboten
- der geb?renpflichtigen Unterst?zung haben, wenden Sie sich an Microsoft
- Support Sales: (001-800) 936 35 00, 6.00-18.00 Pacific Time (9 Stunden
- Zeitunterschied), Montag bis Freitag mit Ausnahme von US-Feiertagen.
- Die Informationen von Microsofts Technischem Support sind auch ?er das
- World Wide Web erh?tlich:
- http://www.microsoft.com/germany/support/.
-
-
- Geb?renfreie Unterst?zung
-
- Newsgroups sind eine erstklassige Quelle f? kostenlose technische
- Unterst?zung durch andere Entwickler und Interessenten. Zus?zlich
- besuchen die Entwickler, Programmmmanager, Kundendienstmitarbeiter
- und Programmierer von Microsoft die offiziellen Newsgroups so oft wie
- m?lich auf, um Feedback zu erhalten und Fragen zu beantworten oder
- Irrt?er aufzukl?en. Wenn Sie einen Artikel in einer Newsgroup
- ver?fentlichen, haben Sie jedoch keine Garantie darauf, dass Sie eine
- Antwort von Microsoft erhalten.
-
- In folgenden Newsgroups k?nen Sie Fragen zu DCOM95 stellen:
- * comp.os.ms-windows.programmer.ole
- * microsoft.public.win32.programmer.ole
-
- Die DCOM-Verteilerliste ist eine weitere gute Quelle f? kostenlose
- technische Unterst?zung. Einer der Vorteile von Verteilerlisten
- besteht darin, dass Microsoft ?er dieses Medium zu vielen Themen
- Vorabnachrichten ver?fentlicht. Andererseits sollte erneut betont
- werden, dass es sich hier nicht um den offiziellen Technischen Support
- von Microsoft handelt - die Mitarbeiter von Microsoft nehmen hieran
- zwar durchaus aktiv teil, Sie haben aber keine Garantie darauf, dass
- ein ver?fentlichter Beitrag auch beantwortet wird.
-
- Weitere Informationen zur DCOM-Verteilerliste finden Sie auf
- folgender Seite:
- http://www.microsoft.com/sitebuilder/resource/mail.asp.
-
- Feedback
-
- Senden Sie bitte Kommentare und Fehlerberichte an die DCOM-Verteilerliste.
-
- Weitere Informationen
-
- Zus?zliche Informationen zu DCOM finden Sie auf der COM-Homepage:
- http://www.microsoft.com/com/.
-
- VII. Dateiliste
- ---------------
-
- In der folgenden Tabelle werden die Versionsnummern der mit DCOM95
- ausgelieferten Dateien aufgef?rt.
-
- oleaut32.dll 2.40.4273
- secur32.dll 4.10.1999
- compobj.dll 2.3.2
- ole2.dll 2.3.2
- ole32.dll 4.71.2900
- olecnv32.dll 4.71.2900
- olethk32.dll 4.71.2900
- rpcltc1.dll 4.71.2900
- rpcltc5.dll 4.71.2900
- rpcltccm.dll 4.71.2900
- rpclts5.dll 4.71.2900
- rpcltscm.dll 4.71.2900
- rpcns4.dll 4.71.2900
- rpcrt4.dll 4.71.2900
- rpcss.exe 4.71.2900
- storage.dll 2.3.2
- stdole2.tlb 2.40.4273
- stdole32.tlb 2.1
- imagehlp.dll 4.00
- dllhost.exe 4.71.2900
- comcat.dll 5.0
- iprop.dll 4.00
- rpcmqcl.dll 4.71.2900
- rpcmqsvr.dll 4.71.2900
- olepro32.dll 5.0.4273
- asycfilt.dll 2.40.4273
- dcom2w98.dll 2.10.35.35
-
- In der folgenden Tabelle werden die Versionsnummern der mit DCM95CFG
- ausgelieferten Dateien aufgef?rt.
-
- dcomcnfg.exe 5.00.1603.0
- ciscnfg.exe 4.71.2618
-