Showing results 1 to 3 of 3

Thread: Fehler bei COM-Zugriff aus Windows Service

  1. #1
    Join Date
    17.09.2008
    Posts
    14

    Default Fehler bei COM-Zugriff aus Windows Service

    Hallo Forum

    Ich möchte aus einem Windows Service (C#) auf die laufende Zenon-Runtime zugreifen und bekomme in der Zeile

    zenOn.Application zen = (zenOn.Application) System.Runtime.InteropServices.Marshal.GetActiveOb ject("zenOn.Application");

    immer diesen Fehler:

    "Operation unavailable (Exception from HRESULT: 0x800401E3 (MK_E_UNAVAILABLE))"

    - Derselbe Zugriff in einer Konsolen oder Windowsforms-Anwendung läuft einwandfrei.
    - Der Service läuft unter demselben User-Account wie die Zenon-Runtime, auch UserID und SessionID ist diesselbe.
    - Die Zenon-Runtime ist zu dem Zeitpunkt auch in der RunningObjectTable registriert.
    - Betriebssystem ist WindowsXP

    Hat jemand noch eine Idee?
    Grüße
    Robert

    PS: Ich weiß, es gab hier im Forum schon einen Thread mit dem gleichen Problem, aber bei uns ist die Ausgangssituation etwas anders (dort wurde DCOM benutzt), deshalb habe ich hier ein neues Thema aufgemacht.

  2. #2

    Default Re: Fehler bei COM-Zugriff aus Windows Service

    Hallo Robert,

    Eine kurze Internetsuche zeigt, dass dies scheinbar ein Problem ist was häufiger auftritt, und sich nicht beschränkt auf den Zugriff von einem (C#) Dienst auf die zenon Runtime, sondern auch mit andere COM Anwendungen auftritt. (Marshal.GetActiveObject windows service 0x800401E3 site:microsoft.com)

    Ich weiss ehrlich gesagt nicht, ob das überhaupt so möglich ist. Alle COPA-DATA Dienste greifen auf jeden Fall nicht auf diese Art auf die Runtime zu. (Kommunizieren in diesem Fall über Windows TCP sockets)

    Selbst wenn man es unter Windows XP irgendwie zum Laufen kriegt, besteht eine gute Chance, dass es ab Windows Vista nicht mehr funktioniert. (Secure Desktop)

    Ab der aktuelle zenon Version (7.10) wird Windows XP nicht länger unterstützt.

    Darf ich fragen warum die .NET Anwendung nicht als Consolenanwendung laufen kann, und zB. von der Runtime automatisch gestartet wird? Oder ggbf. vom Windows Taskscheduler?

    Wenn es eine Windows Forms Anwendung ist, könnte diese eventuell sofort nach dem Start minimiert werden in die Statusleiste vom Taskbar.

    Mfg
    Mark

  3. #3
    Join Date
    17.09.2008
    Posts
    14

    Default AW: Fehler bei COM-Zugriff aus Windows Service

    Hallo Mark

    Danke für die schnelle Antwort.

    Nach weiteren Tests habe ich auch rausgefunden, dass jede COM-Applikation mit GUI (und das ist eigentlich fast jede) diesen Fehler verursacht. Es ist damit kein Zenon-Problem, es hätte aber natürlich sein können, dass hier im Forum das schon mal jemand hinbekommen hat.

    Eine definitive Aussage findet man leider nirgends, aber es scheint tatsächlich so zu sein, dass es nicht gehen kann. Klingt im Nachhinein jetzt auch logisch für mich, denn wenn ein Service keine GUI haben darf, sollte es ihm auch nicht über Hintertürchen wie COM möglich sein, eine GUI zu steuern.

    Ich nehm das jetzt einfach mal so hin und Du hast natürlich recht, dass im Hinblick auf Vista oder 7 es jetzt cleverer wäre eine andere Lösung zu finden.

    Ein unsichtbare Konsolen oder WindowsForms-Anwendung scheint mir der beste Weg. Und sollte es doch unbedingt ein Windows-Service sein sollen, baue ich halt einen Dummy-Service, der diese Anwendung startet bzw. abschießt. (ja, ist nicht schön)

    Danke und Grüße
    Robert

Similar Threads

  1. Fehler Versionsnummern 7.10 / 7.00
    By joergammermann in forum zenon Supervisor
    Replies: 7
    Last Post: 29th August 2013, 13:15
  2. Replies: 4
    Last Post: 31st January 2013, 12:19
  3. Replies: 12
    Last Post: 24th January 2013, 09:35
  4. Replies: 1
    Last Post: 17th August 2010, 23:37
  5. Replies: 0
    Last Post: 27th September 2007, 13:17

Posting Rules

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •