Announcement

Collapse
No announcement yet.

Win98 / OLE-Fehler 80004014

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

  • Win98 / OLE-Fehler 80004014

    Hallo zusammen,

    ich verwende für mehrere Projekte in einer Firma einen gemeinsamen Protokollserver als COM-/DCOM-Server (Novell). Unter W2k und XP läuft alles sauber, bei dem Versuch aber einen Client auf einem Test-Win98-Rechner zu starten erhalte ich obigen OLE-Fehler (COM-Server lokal starten).
    Der Server ist registriert und lässt sich auch manuell problemlos starten, nicht aber vom Client!

    Ohne Serveraufruf läuft der Client problemlos!

    Ich bedanke mich für jeden Hinweis!

    mfg Holger Rogge

  • #2
    Hallo,

    hinter dem HRESULT-Wert 80004014 verbirgt sich CO_E_BAD_SERVER_NAME oder als Klartext "<i>Eine Remoteaktivierung war erforderlich, aber der angegebene Servername war ungültig.</i>".

    Wie sieht der Aufruf im Client konkret aus? Was bedeutet in diesem Zusammenhang "... (COM-Server lokal starten)..."? Wenn der COM-Server lokal gestartet werden soll, darf man nicht <i>CreateRemote</i> nutzen! Wie passt "Novell" zu DCOM

    Comment


    • #3
      Hallo Andreas,<BR>

      danke erst mal für Ihre schnelle Antwort!

      Auch um den Server lokal zu starten verwende ich "CreateRemote"; in dem Fall übergebe ich als Maschinennamen einen Leerstring. Unter W2k und auch XP gibt’s damit keine Probleme, aber ich versuche es jetzt mal mit CreateComObject !<BR>

      >> Wie passt "Novell" zu DCOM?<BR>
      Kann ich wegen fehlender Tests im Moment noch nicht sagen; ich erwähnte es nur um evtl. auf zu erwartende / bekannte Probleme hingewiesen werden zu können!
      <BR>

      Hier der Aufruf des Servers:<BR>

      procedure TLogger.LogServerChanged( Sender: TObject );<BR>

      var
      LS: string;

      begin

      if UseLogServer then begin

      if Assigned( FDCOMLogger ) then

      FDCOMLogger.UnRegisterClient( FClientID );

      FDCOMLogger := nil;

      LS := AppConfig.LogServer; // Namen der Servermaschine aus der
      Registry

      FDCOMLogger :=

      ILogServerDisp( CreateRemoteComObject( LS, CLASS_LogServer ) as IDispatch );

      FClientID := FDCOMLogger.RegisterClient( SysTools.Machine,

      SysTools.User,

      ExtractFileName( ParamStr( 0 ) ) )

      end else

      FDCOMLogger := nil

      end

      Comment


      • #4
        Hallo Andreas,<BR>

        Es ist wirklich so, dass unter DCOM-Win98 bei lokaler Verwendung die Funktion "CreateComObject" angewendet werden muss!<BR>

        Vielen Dank noch einmal für den Tip!

        mfg Holger Rogg

        Comment


        • #5
          Hallo,

          Borland hat in CreateRemoteComObject nur eine Sicherheitsabfrage nach dem lokalen Rechnernamen untergebracht - aber ein Leerstring ist nicht vorgesehen :-

          Comment

          Working...
          X