Announcement

Collapse
No announcement yet.

COM klappt, DCOM nicht

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • COM klappt, DCOM nicht

    Hi!
    Ich habe gerade einen winziges COM-Objekt (Out-of-Process-Server) geschrieben, auf das ich über eine Anwendung auf dem lokalen Server (Win2000 Prof) zugreifen kann. Dazu habe ich die Typbibliothek importiert um eine Wrapperklasse zu bekommen. Dann habe ich das COM-Objekt auf einen zweiten Rechner (Win 98) gespeichert und dort ausgeführt. Das Objekt wurde (wie erwartet) in der Registry eingetragen. Nun habe ich mittels dcomcnfg den Zugriff auf DCOM freigegeben. Meine Anwendung habe ich um den Hostnamen erweitert. Wenn ich nun auf das Objekt zugreifen will, dann erhalte ich eine EOleSysError-Exception "Starten des Servers fehlgeschlagen". Ich vermute, dass ich DCOM (noch) nicht richtig konfiguriert habe. Wer kann mir helfen?
    Gruß, Thorsten

  • #2
    Hallo,

    von welcher Seite erfolgt der Zugriff? Wenn der Windows 98-Rechner auf das DCOM-Objekt des Windows 2000-Rechners zugreifen will, kann es nur an den fehlenden Rechten liegen, wenn das schiefgeht. Wenn alledings der Windows 2000 Rechner über DCOM auf den Windows 98-Rechner zugreift, muss das DCOM-Objekt dort bereits laufen. Unter Windows 9x steht das automatische Starten nicht zur Verfügung (d.h. es darf dort nicht zur Verfügung stehen, da Windows 9x nur eingeschränkte Sicherheitsfunktionen anbietet), so dass Windows 9x-Rechner als DCOM-Server denkbar schlecht geeignet sind.

    Um zu prüfen, ob es sich um dieses Problem handelt, muss auf dem Windows 98-Rechner die DCOM-Anwendung als EXE von Hand gestartet werden. Dann sollte der Zugriff vom anderen Rechner aus möglich sein.
    &#10

    Comment


    • #3
      Hi!<br>Der Zugriff erfolgt von Win2000 nach Win98. Ich habe die EXE gestartet und siehe da: es klappt. <b>Aber</b> nur einmal. Wenn ich das Programm ein zweites Mal starte, habe ich den alten Fehler wieder. Wo habe ich unsauber gearbeitet oder liegt das an den von mir gewählten Einstellungen für das COM-Objekt (ciSingleInstance, tmApartment)? Neustarten der EXE führt zum Erfolg, kann aber nicht die Lösung sein...<br>Gruß, Thorste

      Comment


      • #4
        Hallo,

        wenn das eigene COM-Objekt als <b>ciSingleInstance</b> konfiguriert wird, erhält jeder Client einen eigenen Server-Prozess. Somit muss jedoch der Client über DCOM eine neue Server-Prozessinstanz starten können - allerdings wird dies von Windows 9x <b>nicht</b> unterstützt. Es gibt somit nur 2 Alternativen: <br>
        a) Auf Windows 9x als "Server"-Betriebssystem verzichten, oder <br>
        b) auf <b>ciMultiInstance</b> welchseln, damit jeder Client eine eigene Objektinstanz erhält, die jedoch alle in einem gemeinsamen Server-Prozess ausgeführt werden

        Comment

        Working...
        X