Autor Wątek: błąd DCOM  (Przeczytany 4711 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline evola

  • Nowy użytkownik
  • *
  • Wiadomości: 1
  • Reputacja +0/-0
błąd DCOM
« dnia: Październik 27, 2010, 15:11:27 »
Witam, tworzę aplikację w .NET (c#) która ma być usługą systemową. Na razie stworzyłem banalny szkielet tworzący instancję GT i uruchamiający subiekta. Gdy tą samą funkcjonalność odpalam jako WindowsApplication to wszystko działa poprawnie natomiast gdy jest to WindowsService to dostaję następujący wyjątek: Creating an instance of the COM component with CLSID {F8605331-7454-4A45-98DB-A69EBB3D2947} from the IClassFactory failed due to the following error: 8000ffff. Czy ma ktoś z was jakiś pomysł jak to rozwiązać?

Poniżej przykładowy kod który powoduje problem.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;

namespace WindowsServiceDemo
{
    public partial class Service1 : ServiceBase
    {
        InsERT.GT gt;
        InsERT.Subiekt subiekt;

        public Service1()
        {
            InitializeComponent();
            try
            {
                this.gt = new InsERT.GT(); // TUTAJ SIĘ WYWRACA
                this.gt.Produkt = InsERT.ProduktEnum.gtaProduktSubiekt;
                this.gt.Serwer = @".\INSERTGT";
                this.gt.Autentykacja = InsERT.AutentykacjaEnum.gtaAutentykacjaMieszana;
                this.gt.Uzytkownik = "sa";
                this.gt.UzytkownikHaslo = "";
                this.gt.Baza = "Demo";
                this.gt.Operator = "Szef";
                this.gt.OperatorHaslo = "";
            }
            catch (Exception ex)
            {
                this.WriteEventToWindowsLog("SubiektService", ex.Message);
            }
        }

        protected override void OnStart(string[] args)
        {
            try
            {
                this.subiekt = (InsERT.Subiekt)gt.Uruchom(0, (int)InsERT.UruchomEnum.gtaUruchomWTle);
                this.subiekt.Okno.Widoczne = false;
            }
            catch (Exception ex)
            {
                this.WriteEventToWindowsLog("SubiektService", ex.Message);
            }
        }

        protected override void OnStop()
        {
            try
            {
                this.subiekt.Zakoncz();
            }
            catch (Exception ex)
            {
                this.WriteEventToWindowsLog("SubiektService", ex.Message);
            }
        }

        public void WriteEventToWindowsLog(string strMyApp, string strEvent)
        {
            if (!System.Diagnostics.EventLog.SourceExists(strMyApp))
                System.Diagnostics.EventLog.CreateEventSource(strMyApp, "Application");

            EventLog MyEventLog = new EventLog();
            MyEventLog.Source = strMyApp;
            MyEventLog.WriteEntry(strEvent, EventLogEntryType.Warning);
        }
    }
}


Offline mudzio

  • Nowy użytkownik
  • *
  • Wiadomości: 11
  • Reputacja +0/-0
  • Wersja programu: Subiekt GT 1.26
Odp: błąd DCOM
« Odpowiedź #1 dnia: Listopad 16, 2011, 10:31:47 »
Czy ktoś rozwiązał ten problem  i podzieli się wiedzą ?

Offline Zurek

  • Nowy użytkownik
  • *
  • Wiadomości: 1
  • Reputacja +0/-0
  • Wersja programu: 1.47 SP1
Odp: błąd DCOM
« Odpowiedź #2 dnia: Sierpień 31, 2017, 13:37:36 »
Mam dokładnie ten sam problem co wyżej.

Stosowałem juz [STAThread] przed main() z innych wątków. Jednak nadal nie mogę uruchomić subiekta poprzez usługę.

Usługa była równiez włączana z cmd z prawami admina poleceniem NET START.

Ma ktoś pomysł , gdzie szukać rozwiązania?

Forum Użytkownikow Subiekt GT

Odp: błąd DCOM
« Odpowiedź #2 dnia: Sierpień 31, 2017, 13:37:36 »