Announcement

Collapse
No announcement yet.

Zugriff auf COM+ Object

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

  • Zugriff auf COM+ Object

    Hallo, <BR><BR>
    beim Klicken auf einen Button in einer ASP.NET Seite soll folgende Code ausgeführt werden:<BR><BR>
    Dim aguid = New Guid("...")<BR>
    Dim aservertyp As Type = Type.GetTypeFromCLSID(aguid, True)<BR>
    Dim aserver As Object<BR>
    Dim ads As DataSet<BR>
    Dim bserver As ITest_ComObj.ITest_ComObj<BR>
    aserver = Activator.CreateInstance(aservertyp)<BR>
    bserver = CType(aserver, ITest_ComObj.ITest_ComObj)<BR>
    resads = bserver.GetDataSet(TextBox1.Text)<BR>
    ads.Clear()<BR>
    ads.Merge(resads)<BR>
    DataGrid1.DataSource = ads<BR>

    <BR><BR>
    Bei der Ausführung kommt eine System.InvalidTypeCast Exception in der Zeile<BR><BR> bserver = CType(aserver, ITest_ComObj.ITest_ComObj)<BR><BR>
    Hinter ITest_ComObj steckt ein Com+Object, dass auf einem anderen Rechner ausgefürhrt wird. Derselbe Code funktioniert in einer normalen Windows-Form problemlos,

    Für jede Hilfe dankbar.

  • #2
    Hallo,

    in dem gezeigten Beispiel greift die ASP.NET-Seite über DCOM auf den anderen Rechner zu. Und dies ist nur dann erfolgreich, wenn der Prozess (aspnet_wp.exe) mit den zum Server passenden Sicherheitseinstellungen betrieben wird.

    Um zu prüfen, ob die strengen DCOM-Sicherheitsregeln dieses Problem verursachen, würde ich folgendes machen:

    1. Datei <b>machine.config</b> (im .NET Framework-Unterverzeichnis CONFIG) anschauen, wobei der Abschnitt <b>processModel</b> von Interesse ist.

    2. Im Abschnitt processModel die Einstellungen <b>comAuthenticationLevel="None" comImpersonationLevel="Identify"</b> aktivieren.

    3. Rechner neu booten, der DCOM-Aufruf sollte nun erfolgreich sein.

    4. Wenn nicht, wie sieht die Sicherheits-Konfiguration der aufgerufenen COM+ Anwendung aus?

    Siehe dazu auch <i>http://www.entwickler.com/itr/features/psecom,id,141,nodeid,76.html</i&gt

    Comment

    Working...
    X