Announcement

Collapse
No announcement yet.

COM+ Object benutzen

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

  • COM+ Object benutzen

    Hallo,

    lt. den Beispielen bei .NET zum Thema COM+ reicht ja die Erstellung des
    Objekts mit "new". Bei meinen Tests habe ich festgestellt das bei den Komponentendiensten jedoch keine Aktivierung angezeigt wurde. Die nächste
    Frage ist wie rufe ich das Objekt auf, wenn es auf einem anderen Server liegt? Danke.

  • #2
    Hallo,

    in der Tat ist auf den Hilfeseiten kein direktes Beispiel für einen .NET-Client zu finden, der ein .NET Enterprise Services-Objekt (alias COM+) auf einem externen Rechner aufruft. Ich gehe daher (bisher) davon aus, dass .NET Remoting für diesen Zugriffsweg genutzt wird. In der Hilfe ist dabei der folgende Satz zu finden: "Remoting: Accesses remote Objects. Serviced Components are also .NET Framework Remoting Components and can take full advantage of the features in .NET Remoting. This includes SOAP message communication."

    a) Aktivierung durch .NET-Clients:

    Hier gibt es mehrere Möglichkeiten, den Zielrechner für .NET Remoting zu definieren:<br>
    - RemotingConfiguration.Configure <br>
    - .NET Admin Tool (mmc mscorcfg.msc)<br>
    - direkter Aufruf im Programm (Activator.GetObject)

    b) Aktivierung durch "alten" COM-Client (Beispiel für einen Delphi-Client):

    Ich selbst habe bisher nur den Zugriff von Delphi aus (Windows XP Professional) auf eine .NET COM+ Anwendung (Windows Whistler Server) ausprobiert, aber meine .NET-Clients laufen zur Zeit alle auf dem gleichen Server wie die .NET COM+ Anwendung :-)
    <pre>
    uses ComObj;

    const
    CLASS_NETObj : TGUID = '{DCB706FA-900E-35AF-A2BA-498CCA4253A5}';

    procedure TForm1.Button1Click(Sender: TObject);
    var
    vSrv : OleVariant;
    begin
    vSrv := CreateRemoteComObject('192.168.10.4', CLASS_NETObj) as IDispatch;
    ShowMessage(vSrv.DoWorkEx);
    end;
    </pre&gt

    Comment


    • #3
      Hallo,

      das wird es wahrscheinlich dann auch sein. Beim Remoting habe ich zwischenzeitlich auch rausgefunden das als Host COM+ dienen kann.
      Insofern hat sich damit mein Problem das ich im Remoting Ordner hatte erledigt. Ich werde das mal mit meinem RemoteTest Client probieren die Aktivierung von COM+

      Comment


      • #4
        Hallo,

        auf einen Test mehr kommt es ja nicht an: Was passiert, wenn auf dem Client-Rechner ein <i>COM+ Anwendungsproxy</i> für den Server installiert wird. Leitet .NET dann den "lokalen" Aufruf auf den Server um

        Comment


        • #5
          Einen Com+ Anwendungsproxy kann ich nicht erstellen. Er merkt das
          das COM+ Objekt bereits ein .NET Objekt ist und läßt die "Rückerstellung" nicht zu. Ich bin jetzt gerade beim Download von VS über MSDN und wollte es dann mit der Version weiter testen.
          Wenn ich Infos hab poste ich sie hier

          Comment


          • #6
            Hi,

            ja wenn die Anwendung exportiert wird als Client-Proxy, leitet
            er die Aufrufe entsprechend auf den Server um. Das nichts im MTS angezeigt wurde, hängt damit zusammen das ich das Attribut
            [EventTrackingEnabled(true)] nicht gesetzt hatte. Diese scheint vom Standard auf false zu sein

            Comment

            Working...
            X