HomeNewsForumECO-BuchLinksImpressum

Login-Bereich

Benutzer Anmeldung

Sind Sie in diesem Portal bereits registriert? Dann können Sie sich hier anmelden:

Benutzername:

Passwort:

Passwort vergessen?

 

Registrierung

 

Fragen zum Forum?

Schicken Sie ein Mail an den Moderator.

ECO-Forum
Alle Kategorien > ECO-Programmierung > Persistenz > PersistenceMapperProvider über IIS
Anzahl Nachrichten: 5 - Seiten (1): [1]
Autor: Schrammel
Erstellt: 26. Okt. 2006 - 09:58
Betreff: PersistenceMapperProvider über IIS
Hallo zusammen,

Eric Friedlingstein hat in der Borland-Newsgroup "...Delphi...ECO" eine Diskussion über das Remoting eines 'PersistenceMapperProvider' über den IIS angestoßen.

Ich bin genauso weit, wie er war, als er damit angefangen hat. Ein Demo, aus dem man erkennen kann, wie es gehen muss, habe ich noch nicht gesehen.

Die Fehlermeldung, die ich bekomme lautet:

System.NullReferenceException: Object reference not set to an instance of an
object.
at
System.Runtime.Remoting.MetadataServices.RealSchemaType.Resolve(StringBuild­er
sb)
at System.Runtime.Remoting.MetadataServices.XMLNamespace.Resolve()
at System.Runtime.Remoting.MetadataServices.WsdlGenerator.Resolve()
at System.Runtime.Remoting.MetadataServices.WsdlGenerator.Generate()
at System.Runtime.Remoting.MetadataServices.SUDSGenerator.Generate()
at
System.Runtime.Remoting.MetadataServices.SdlChannelSink.GenerateSdl(SdlType
sdlType, IServerResponseChannelSinkStack sinkStack, ITransportHeaders
requestHeaders, ITransportHeaders responseHeaders, Stream& outputStream)
at
System.Runtime.Remoting.MetadataServices.SdlChannelSink.ProcessMessage(ISer­verChannelSinkStack
sinkStack, IMessage requestMsg, ITransportHeaders requestHeaders, Stream
requestStream, IMessage& responseMsg, ITransportHeaders& responseHeaders,
Stream& responseStream)
at
System.Runtime.Remoting.Channels.Http.HttpHandlerTransportSink.HandleReques­t(HttpContext
context)
at
System.Runtime.Remoting.Channels.Http.HttpRemotingHandler.InternalProcessRe­quest(HttpContext
context)

Hat jemand von euch mal versucht, etwas vergleichbars zu machen? Kann mir jemand helfen?


Herzlichen Dank für Eure Bemühungen

Stefan Schramm
Autor: AS
Erstellt: 31. Okt. 2006 - 10:09
Betreff: re: PersistenceMapperProvider über IIS
Hallo Stefan,

habe deine aktualisierte Nachricht auch im Delphi-Praxis Forum gelesen.
Zu deinem (Teil-)Problem "Initialisierung eines EcoSpace in einer Package" kann ich folgendes beitragen:
Der EcoSpace kann auch bereits im Initialisierungsabschnitt einer Unit der Package erzeugt und aktiviert werden.

Ich habe eine ECO-Package, das ein UML-Package und eine EcoSpace-Unit enthält. Dazu habe ich noch eine ManagerUnit gepackt, die ein singuläres Managerobjekt enthält (zum Verwalten des EcoSpace und für den externen Zugriff darauf).
Die singuläre Instanz dieses Managerobjektes wird bereits im Initialisierungsteil der Unit erzeugt und generiert und aktiviert selber wieder eine EcoSpace-Instanz.

Nur zur Sicherheit: Hast du in deiner EcoSpace-Unit die Uml-Package eingetragen und hast du nach dem Erzeugen der EcoSpace-Instanz diese auch aktiviert?

Gruß
Alois

Autor: Schrammel
Erstellt: 31. Okt. 2006 - 11:35
Betreff: re: PersistenceMapperProvider über IIS
Hallo Alois,

ich versuche derzeit, das Problem allein durch C# zu lesen. Das kommt aus meiner Vergangenheit, ich komme aus dem C++-Lager.

So, nun zu Deinen Fragen:
Der EcoSpace würde aktiviert werden, einen entsprechenden Befehl hänge ich direkt an den Aufruf des Konstruktors dran.
Ich glaube, das Problem darauf eingrenzen zu können, dass der EcoSpace zu spät erzeugt wird. Ich habe zum Testen den für das Erzeugen des EcoSpace zuständigen Code-Abschnitt in den Konstruktor meines PersistenceMapperProvider - Derivates (RezepteMapper) gepackt. Dies scheint zu spät zu sein, da der Aufruf des Konstrukturs der Basisklasse (PersistenceMapperProvider) vorher geschieht.

Auch das UML-Package habe ich dem Ecospace bekannt gemacht.

Als WinForms-Server-Anwendung (so wie im ECO-Buch beschrieben) läuft alles.

Hier stehe ich derzeit:
Der Weg, mit dem ich Objekte für den Remotezugriff über den IIS konfiguriere funktioniert mit "herkömmlichen" Objekten.
Mein RezepteProvider kann als WinForms-Server (so wie in Deinem Buch beschrieben) remotet werden. Das funktioniert ausgezeichnet.
Nur beim Remoten den RezepteProviders über den IIS bekomme ich die Fehlermeldung. Da die Debug-Möglichkeiten stark eingeschränkt sind, stochere ich momentan etwas im Dunkeln.

Danke für Deinen Tip mit dem Management-Objekt, das werde ich mal ausprobieren. Dazu muss ich mal schauen, wie man einen Initialisierungsabschnitt in eine C#-DLL einbindet. Der Trick mit dem Startobjekt scheidet hier ja aus.
Sollte es nicht klappen, dann stelle ich mal ein Demo-Projekt ein (und wen's klappt, dann erst recht)

Ich halte dich auf dem Laufenden!

Gruß

Stefan
Autor: Schrammel
Erstellt: 01. Nov. 2006 - 07:27
Betreff: re: PersistenceMapperProvider über IIS
Hallo Alois,
Dein Tip hat mich gut weiter gebracht. Das mit dem Manager-Objekt klappt. Leider kenne ich unter C# keine Möglichkeit, so etwas, wie den 'initialization'-Abschnitt in einer Delphi-Dll, zu implementieren.

Dann müsste ich nicht mehr durch die Client-Applikation explizit ein Objekt erzeugen, dessen Aufgabe nichts anderes ist, als den Fuss in der Tür zu lassen, solange der PersistenceMapper gebraucht wird.

Kannst Du mir das weiter helfen?

Herzlichen Dank für Deine Bemühungen!

Stefan
Autor: AS
Erstellt: 03. Nov. 2006 - 11:03
Betreff: re: re: PersistenceMapperProvider über IIS
Hallo Stefan,
hast du an die Möglichkeit einer statischen Klassenmethode gedacht?
Damit könntest du den EcoSpace erzeugen und aktivieren ohne erst ein Objekt anzulegen.

Alois
Anzahl Nachrichten: 5 - Seiten (1): [1]
Sie müssen sich anmelden, um in dieser Konferenz eine Nachricht zu schreiben.