AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi HTTPRIO lokal erzeugt führt zu Zugriffsverletzung
Thema durchsuchen
Ansicht
Themen-Optionen

HTTPRIO lokal erzeugt führt zu Zugriffsverletzung

Ein Thema von Bbommel · begonnen am 12. Jan 2011 · letzter Beitrag vom 12. Jan 2011
Antwort Antwort
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
648 Beiträge
 
Delphi 12 Athens
 
#1

HTTPRIO lokal erzeugt führt zu Zugriffsverletzung

  Alt 12. Jan 2011, 14:47
Hallo zusammen,

ich muss auf einen Web Service zugreifen und habe mir dazu mit dem WSDL-Import die passende Unit erzeugt. Nun finde ich es vom Design her allerdings äußert unschön, wenn ich mir diese HTTPRIO-Komponente aufs Formular ziehen muss, weil ich sie da eigentlich gar nicht brauche.

Ich wollte das Dingen einfach an der passenden Stelle in der Funktion lokal erzeugen, benutzen und wieder freigeben, wie auch schon hundertfach an anderer Stelle mit anderen Komponenten gemacht.

Mit HTTPRIO habe ich allerdings Probleme. Ich kann die Komponente erzeugen, ich kann sie auch nutzen und bekomme vom Web Service auch das richtige Ergebnis, und freigeben kann ich sie letztlich auch. Wenn dann allerdings die Funktion verlassen wird, erhalte ich beim Verlassen entweder eine Zugriffsverletzung oder eine ungültige Zeigeroperation.

Das passiert nicht, wenn ich die Komponente zwar erzeuge und freigebe, aber den Web Service nicht aufrufe, und es passiert auch nicht, wenn ich die Komponente am Ende nicht freigebe.

Was ist zu tun? Natürlich könnte ich das doch irgendwie aufs Hauptform legen, aber gefallen will mir das nicht.

So ähnlich sieht der Code aus:

Delphi-Quellcode:
procedure CallWS (aTableID: integer; aKeyString: string);

var HTTPrio: THTTPRIO;
    callURL: string;

begin
  callURL:='';
  try
    try
      HTTPrio:=THTTPRIO.Create(nil);
      HTTPrio.WSDLLocation:=currConfig.WSDLlocation;
      HTTPrio.Service:='myWS';
      HTTPrio.Port:='myWS_Port';
      HTTPrio.HTTPWebNode.UserName:=currConfig.HTTPuser;
      HTTPrio.HTTPWebNode.Password:=currConfig.HTTPpassword;
      callURL:=(HTTPrio as myWS_Port).GetPageURL(aTableID,aKeyString);
    except
      on e: exception do begin
        // Fehler in Log-Datei...
      end;
    end;
  finally
    HTTPrio.Free;
  end;

  // jetzt die URL, die wir bekommen haben, aufrufen
  // [...]
end;
Eine Änderung zu HTTPrio:=THTTPRIO.Create(Application) hat auch nicht geholfen.

Ideen, anyone?

Bis denn
Bommel
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
648 Beiträge
 
Delphi 12 Athens
 
#2

AW: HTTPRIO lokal erzeugt führt zu Zugriffsverletzung

  Alt 12. Jan 2011, 15:36
Hm, wer Google bedienen kann, ist klar im Vorteil.

Im Embadingens-Wiki steht doch die Lösung. Kurzform: Einfach nicht selber freigeben und alles ist gut (wenn ich das so richtig verstanden habe).

Bis denn
Bommel
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz