Home > Forum > Allgemein
Serviced Components erstellen und debuggen

Veröffentlicht von am Tuesday, July 29, 2008 5:32 AM

Thema: Migration nach .NET stufenweise lösen, indem man nach und nach serviced components mit bestehenden COM+ Komponenten mischt. ABER WIE ?
Hallo,

ich würde gerne wissen wie man Serviced Components erstellt die man anschließend in COM+ registriert und die man auch debuggen kann.

Die Serviced Component könnte von einem VB6 Programm oder durch Script Code einer klassischen ASP Seite aufgerufen werden.

Das Erstellen geht schon so lala, Debuggen geht auch ein wenig wenn von VB6 gerufen. Debugger hält zwar in der VS IDE an, ich kann aber keine Variablen inspizieren.

Wer hat Erfahrungen im Mischen von .NET und z.B. VB6 Komponenten. Das Internet ist groß aber dazu finde ich leider nie die ganze Wahrheit, nur zig andere mit demselben Problem. Vielleicht hat auch jemand eine Buchempfehlung oder kennt Bill Gates ....

Danke
Sascha

Kommentare:

RE: Serviced Components erstellen und debuggen
Von dallmair am Thursday, July 31, 2008 1:21 AM
Hi Sascha,

möglicherweise können wir Dein Problem lösen oder zumindest Tipps geben. Dafür würde mich aber interessieren, welche Probleme/Fehler genau auftreten, sprich eine Schritt-für-Schritt-Anleitung was Du hast, was Du tust, was passiert und was passieren soll.

Viele Grüße,
Thomas

(Kommentar hinzufügen)

Serviced Components erstellen und debuggen
Von SaschaKruening am Wednesday, August 06, 2008 8:45 AM
Ich habe ein einfaches Beispiel vorbereitet. Darin wird eine COM DLL in VB.Net erstellt. Zum Testen der Debug-Funktionalität gibt es eine VB6, sowie eine ASP Anwendung. Das Debuggen der DLL klappt nur, wenn vom VB6 Programm aufgerufen.

Danke
Sascha
P.S. ich hoffe daß ich meine vorbereitete
DOC Datei an diesen Kommentar anhängen kann. Falls nicht, dann bitte ich um Anweisungen wie ich das machen kann.
1000 Dank

(Kommentar hinzufügen)

RE: Serviced Components erstellen und debuggen
Von dallmair am Friday, August 08, 2008 10:13 AM
Hi,

ich fürchte, dass Du Deine Datei separat im Downloads-Bereich hochladen musst. Klicke dazu nach der Anmeldung links in der Navigation auf "Downloads". Am unteren Ende der Seite kannst Du dann einen neuen Download hinzufügen.

Viele Grüße,
Thomas

(Kommentar hinzufügen)

Serviced Components erstellen und debuggen
Von SaschaKruening am Saturday, August 09, 2008 1:36 AM
Hi Thomas,

ich habe die Datei COMinterop.ZIP dem Download-Bereich hinzugefügt.
Dort ist auch eine kurze Beschreibung über den Inhalt der ZIP Datei enthalten.

Danke
Sascha

(Kommentar hinzufügen)

RE: Serviced Components erstellen und debuggen
Von dallmair am Saturday, August 09, 2008 9:58 PM
Hi Sascha,

vermutlich hast Du nur übersehen, bei der Fehlersuche aus klassischem ASP den Debugger für managed code auszuwählen (letzter Abschnitt in Deinem Dokument). Wenn Du Dich mit Visual Studio auf den Prozess verbinden möchtest, gehst Du momentan so vor:

1. Tools -> Attach to Process... (in welchem Menü dieser Befehl zu finden ist hängt von der VS Version und Deinen Einstellungen ab)
2. Die richtige dllhost.exe auswählen
3. Auf "Attach" klicken
4. Warnung bestätigen

Visual Studio versucht standardmäßig automatisch zu erkennen, mit welchen Debuggern es sich verbinden muss (steht in der Type-Spalte). Diese Erkennung basiert nur auf gewissen Heuristiken und schlägt bei Dir "Script, x86" vor, also nur Script- und Unmanaged-Code-Debugging. Jegliche Debug-Befehle in managed code werden nicht funktionieren.

Glücklicherweise kann man die automatische Erkennung überschreiben, indem man auf den "Select..."-Button klickt und dann die gewünschten Debugger auswählt (in dem folgenden Screenshot zu sehen):

http://dukebaby.net/photos/technical/images/82/original.aspx

Wähle mal explizit den Debugger für managed code aus. Funktioniert das Debuggen dann?

Viele Grüße,
Thomas

(Kommentar hinzufügen)

Serviced Components erstellen und debuggen
Von SaschaKruening am Sunday, August 10, 2008 5:46 AM
Thomas,

deine Empfehlung hat leider keine Linderung verschafft. Ich habe deinen Rat explizit so ausprobiert und den Verlauf dokumentiert.

Es wird wohl eine Angelegenheit der Berechtigung sein, denn ich kann auch in den VB.NET Quelltext die Anweisung STOP einfügen. An dieser Stelle sollte der Debugger anspringen. Tatsächlilch fragt Windows ( ich habe die 2003 Server Version), ob zu dem aufrufenden Prozess verbunden werden soll. Nach Bestätigung erhalte ich die Meldung daß der Zugriff verweigert wird.

All das habe ich in der Datei
Serviced Components erstellen und debuggen_V2.doc

festgehalten, siehe Kapitel "Attach to Process untersuchen"

Servus
Sascha

(Kommentar hinzufügen)

RE: Serviced Components erstellen und debuggen
Von dallmair am Sunday, August 10, 2008 12:20 PM
Hallo,

nachdem es aus VB6 heraus funktioniert, aber im IIS-Szenario nicht, hätte ich als nächstes auch auf Security-Probleme getippt. Da wird's ja schon spannend, wenn der IIS involviert ist.

Habe den folgenden Blog-Eintrag gefunden, der einige Einstellungen beschreibt (Abschnitt "Debugging Classic ASP"Wink:

http://coderewind.com/blog/index.php/configuring-iis-vs-2005/

Überprüfe bitte, ob das bei Dir alles so eingestellt ist. Sollte das der Fall sein oder keine Abhilfe bringen, so würde mich interessieren ob Du mit Administrator-Rechten oder als Non-Admin arbeitest.

Viele Grüße,
Thomas

(Kommentar hinzufügen)

Serviced Components erstellen und debuggen
Von SaschaKruening am Wednesday, August 13, 2008 12:47 PM
Thonas,

ich habe die Anweisungen von der Seite befolgt, auf die deine Verknüpfung verweist.
Allerdings konnte ich Punkt 8 nicht erfüllen, weil ich den Ordner C:\winnt\system32\inetsrv\urlscan nicht habe.

Ein erneuter Versuch verlief wie gehabt:
Der Debugger von VS hat bei Erreichen der STOP Anweisung angefragt, ob ich zu dllhost.exe verbinden will. Auf mein JA, erscheint die Meldung:
Unable to attach to the crashing process. Zugriff verweigert.

Ich vermute einfach mal, daß Microsoft nicht will, daß man weiter mit klassischem ASP arbeitet. Ich kann aber leider nicht anders.

In wenigen Jahren könnt ihr mich dann in Deutschen Museum neben der ersten Sschreibmaschine sehen "Progrmmierer von klassischem ASP, bitte weder füttern noch anfassen"

Servus, Sascha

(Kommentar hinzufügen)

Serviced Components erstellen und debuggen
Von SaschaKruening am Wednesday, August 13, 2008 2:09 PM
Thomas,

nix Deutsches Museum! ES GEHT !!! :--)

Ich muß es nur nochmal so hinbekommen daß ich es auch reproduzieren, beschreiben und auch verstehen kann.

Thema war ja eigentlich "Serviced Component....". So weit waren wir ja bisher noch nicht gekommen, weil die DLL noch nie in COM+ registriert wurde.

Das habe ich aber jetzt gemacht, und siehe da, ich kann, obwohl aufgerufen aus klassischem ASP, debuggen, ich kann die DLL neu kompilieren ohne IISRESET vorab durchzuführen, einfach durch Herunterfahren der COM+ Serveranwendung in der ich die DLL eingebunden habe.

Das ist wichtig, denn in meiner wirklichen Anwendung [CRM System] dauert ein Neustart nach IISRESET so an die 70 Sekunden, zumindest auf meinem Entwicklungsrechner und der sollte ja bekanntlich sehr schlecht ausgestattet sein, damit der Programmierer sich anstrengt guten, schnellen Code zu erzeugen. Dauert aber auch auf dem echten Server bstimmt 35 Sekunden.

Aber jetzt ist es genau so wie ich es bisher von VB6 gewohnt bin. Außerdem kann ich durch Registrierung in COM+ auch Transaktionen nutzen.

Ich hoffe daß ich ein "Kochrezept" erstellen kann das jedem hilft. Kann aber dauern, denn ich habe zur Zeit viel zu tun.

Vielen Dank für deine Unterstützung.

Servus
Sascha

(Kommentar hinzufügen)

RE: Serviced Components erstellen und debuggen
Von dallmair am Thursday, August 14, 2008 12:45 AM
Hi Sascha!

Freut mich riesig, dass es nun funktioniert!

Im Interesse aller die per Suchmaschine auf unsere Konversation stoßen wär's klasse, wenn Du demnächst die Lösung bzw. den Knackpunkt posten könntest. Nicht zuletzt würde auch mich interessieren, woran's denn nun gelegen hat. Smile

Viele Grüße,
Thomas

(Kommentar hinzufügen)

Serviced Components erstellen und debuggen
Von SaschaKruening am Monday, August 18, 2008 12:52 PM
Um das Ganze vorerst zum Abschluß zu bringen, habe ich im Download-Bereich die Datei "NETassemblyUndKlassischesASP.doc" eingestellt. Darin ist eine Zusammenfassung meiner Experimente, inkl. der Beschreibung wie man .NET Assemblies von VB6 und/oder klassischem ASP aufrufen und debuggen kann.

Einige Dinge sind für mich noch immer 'nebulös'. Wer es besser weiß kann gerne seinen Senf als Bereicherung für alle, dazu geben.

:o)

(Kommentar hinzufügen)

Kommentar hinzufügen

International .NET Association (INETA)
DotNetPro Newsfeed
  • Microsoft hat Robotics Developer Studio fertiggestellt
    Das Programmier-Kit zur Entwicklung von Robotern arbeitet mit Visual Studio zusammen.
    mehr ...
  • CodeGear RAD Studio 2009 angekündigt
    Embarcadero hat nun das CodeGear RAD Studio 2009 offiziell angekündigt.
    mehr ...
  •  

    Neue Beiträge
  • .NET (C#) Architekt im Zentrum Münchens - sehr anspruchsvoller Job für Profis!
    Sie suchen nach einer echten Herausforderung, der Sie sich als .NET- Profi stellen möchten? Sie möchten nicht nur kleine Brötchen backen sondern die wirklich spannenden Themen anpacken? Aber nicht reisen? Produktentwicklung mit Zeitdauern von über 2 Jahren? Dann sind Sie hier richtig!
  • Entwickler-Thema bei der PASS Regionalgruppe
    SQL Compact Edition am Beispiel einer VSTO-Anwendung in die eigene Applikation integrieren (Helmut Obertanner)
    Donnerstag, 13. November 2008 um 18:30 Uhr bei Microsoft, Unterschleißheim
  • TFS & Sharepoint Portal
    ich würde gerne wissen wie man die „Work Items“ eines Projekts von TFS in Sharepoint Portal (Team Site) sehen und bearbeiten kann


  • Copyright © 2003 - 2007 .NET Developers Group München