• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

.NET CORE wyjatek podczas tworzenia ManagenmentObjectSearcher

VPS Starter Arubacloud
0 głosów
292 wizyt
pytanie zadane 10 lipca 2018 w C# przez Duch003 Początkujący (440 p.)
edycja 10 lipca 2018 przez Duch003

Witam.

Jestem w trakcie testowania przepisanej aplikacji do analizowania flakow komputera - od prosta apka ktora w konsoli wyswietla porownanie statystyk rzeczywistej i bazodanowej.

Aplikacja dziala na wiekszosci komputerow ktore sprawdzam, mam jednak problem z niektorymi. Rzeczy ktore wiem:

1. Podczas uruchamiania aplikacji probuje okreslic model urzadzenia wywolujac zapytania wmi. Wywala taki wyjatek (calosc przepisana recznie, dodam zdjecie tego co wywala konsola jakbym sie gdzies pomylil przepisujac):

Unhandled Exception: System.TypeInitializationException: The type initializer for "System.Management.WmiNetUtilsHelper" threw an exception -> System.ArgumentNullException: Value cannot be null. 
Parameter name: ptr.
	at System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer(IntPtr ptr, Type t)
	at System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer[TDelegate] (IntPtr ptr)
	at System.Management.WmiNetUtilsHelper.LoadDelegate[TDelegate] (TDelegate& delegate_f, IntPtr hModule, String procName)
	at System.Management.WmiNetUtilsHelper..ctor()
--end of inner exception stack trace--
at System.Management.MTAHelper.IsNoContextMTA()
at System.Management.MTAHelper.CreateInMTA(Type type)
at System.Management.ManagementPath.CreateWbemPath(String path)
at ConsoleApp2.Retriever.ReadDetailsFromComputer(String query, String property, String scope), Retriever.cs line:92
at ConsoleApp2.Retriever.AnalyzeForModel(), Retriever.cs line:341
at ConsoleApp2.Program.Initialization(String model), Program.cs, line: 1328
at ConsoleApp2.Program.Main(string[] args), Program.cs line:41

Wyjatek wywala dokladnie w tym miejscu kodu, podczas tworzenia obiektu ManagementObjectSearcher:

public static object ReadDetailsFromComputer(string query, string property, string scope = @"root/cimv2")
        {
            object anwser = null;
            ManagementScope _scope = new ManagementScope(scope);
            ObjectQuery _query = new ObjectQuery(query);
            using (ManagementObjectSearcher search = new ManagementObjectSearcher(_scope, _query))
            {
                foreach (var z in search.Get())
                {
                    anwser = z[property];
                }
            }
                (...)
           }

2. Rzecz dzieje sie na buildach Windows 10 poniżej 15063 (problem wyskoczyl na systemach z 1, 2 i 3 buildem). Nie wiem jak z czwartym buildem. Z kolei tak jak mowilem, na wiekszosci komputerow ktore sprawdzam problemu nie ma. Domyslam sie ze chodzi o wsparcie samego windowsa, ale z drugiej strony .net core app ktora sama ma wszystkie biblioteki jakich uzywa nie powinna dzialac tak czy tak?

I czy w takim razie na komputerach z win8 bedzie taki sam problem?

3. Aplikacja jest pisana w .net core 2.1, jest jako Self-contained, aby byla przenosna na pendrive.

4. Calosc kodu na github: https://github.com/Duch003/ConsoleApp2

Jak sie pozbyc tego problemu? Ewentualnie gdzie mam szukac rozwiazania?

Pozdrawiam.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 39 wizyt
pytanie zadane 4 marca w C# przez drewienko Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 182 wizyt
pytanie zadane 6 lipca 2023 w C# przez reaktywny Nałogowiec (40,650 p.)
0 głosów
0 odpowiedzi 112 wizyt

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...