AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MSXML im Dienst

Ein Thema von Mr_G · begonnen am 2. Jun 2009 · letzter Beitrag vom 3. Jun 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#1

MSXML im Dienst

  Alt 2. Jun 2009, 14:52
Hallo zusammen,
ich habe (wie schon in einem Thread von im erwähnt) das Problem, das nach beenden meines Dienstes ein "Problembericht senden"-Fenster auftaucht. Ich habe MSXML als übeltäter entlarvt, weiß aber nicht warum es da nun Probleme gibt. Hier mal der Code:
Delphi-Quellcode:
CoInitializeEx(nil, COINIT_APARTMENTTHREADED);
XMLSchedule := CoDOMDocument40.Create;
XMLSchedule.setProperty('NewParser', true);
if not XMLSchedule.load(FILE_SCHEDULE) then
  XMLSchedule.loadXML('<?xml version="1.0" ?><timetable version="0.2" />');

if XMLSchedule.parseError.errorCode <> 0 then
  ExecError := $3E80
else if XMLSchedule.documentElement.nodeName <> 'timetablethen
  ExecError := $3E81
else
  begin
    ScheduleVersion := XMLSchedule.documentElement.attributes.
      getNamedItem('version').text;
    if ScheduleVersion > '0.2then
      ExecError := $3E82;
  end;
Dieser Code wird beim Initialisieren des Dienstes ohne Fehler ausgeführt. Beim Beenden wird dann noch CoUninitialize aufgerufen. Ich habe sämtliche Bearbeitung (die problemlos funktioniert) testweise auskommentiert um Fehler dort auszuschließen.
Woran könnte das liegen (evtl. etwas in Bezug auf COM)?
Miniaturansicht angehängter Grafiken
problembericht_611.png  
Jan
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

Re: MSXML im Dienst

  Alt 2. Jun 2009, 15:05
Hast du es mal ohne CoUninitialize versucht?
Vielleicht ist seitens MSXML nocht nicht alles aufgeräumt wurden.

Ansonsten MSXML einfach nicht nutzen.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#3

Re: MSXML im Dienst

  Alt 2. Jun 2009, 15:53
Hab ich versucht... leider ohne Wirkung
MSXML nicht zu nutzen ist leider keine Option...
Jan
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#4

Re: MSXML im Dienst

  Alt 2. Jun 2009, 18:26
Zitat von Mr_G:
Ich habe MSXML als übeltäter entlarvt, weiß aber nicht warum es da nun Probleme gibt.
Werden Variablen als TXMLDocument deklariert? Das ist eine häufige Fehlerursache.
Es sollte stattdessen immer das Interface IXMLDocument als Typ verwendet werden.
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#5

Re: MSXML im Dienst

  Alt 3. Jun 2009, 09:58
Das ist leider nicht das Problem. Die Variable ist als IXMLDOMDocument2 deklariert.
Jan
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#6

Re: MSXML im Dienst

  Alt 3. Jun 2009, 10:14
Hast du mal andere Parameter beim CoInitializeEx versucht?
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#7

Re: MSXML im Dienst

  Alt 3. Jun 2009, 10:44
Ich habe mal COINIT_MULTITHREADED ausprobiert aber auch das hat nicht geholfen.
Jan
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

Re: MSXML im Dienst

  Alt 3. Jun 2009, 10:52
jupp, also auch mal COINIT_MULTITHREADED oder einfach nur CoInitialize(nil) ?
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#9

Re: MSXML im Dienst

  Alt 3. Jun 2009, 11:14
Auch das bringt nicht den gewünschten Erfolg... Aber beim testen ist mir aufgefallen, dass ich scheinbar nur zu hektisch bin: Ich habe den Dienst jeweils gestartet und dann direkt gestoppt. Wenn ich ein bisschen Zeit vergehen lasse beendet sich der Dienst korrekt. Außerdem musste ich noch das CoUninitialize herausnehmen, da sich der Dienst mit CoUninitialize beim Beenden immer verschluckt.
Was mach ich denn nun?
Jan
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#10

Re: MSXML im Dienst

  Alt 3. Jun 2009, 11:23
Hats du vor dem CoUninitialize das XML-Objekt freigegeben?
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:24 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