| Termin | Definicja |
|---|---|
| .NET Runtime nie działa w środowisku korporacyjnym | W środowisku korporacyjnym .NET Runtime bywa blokowany przez zasady grupowe (Group Policy) ograniczające instalację komponentów lub przez oprogramowanie zabezpieczające blokujące wykonywanie niepodpisanych bibliotek. Czym jest problem z działaniem .NET Runtime w środowisku korporacyjnym.NET Runtime to zestaw składników potrzebnych do uruchamiania aplikacji przygotowanych dla platformy .NET. Sam program użytkowy może wyglądać na poprawnie zainstalowany, a mimo to nie uruchamiać się, jeżeli na komputerze brakuje właściwej wersji środowiska wykonawczego, wymaganych bibliotek albo zgodnych komponentów systemowych. W organizacji korzystającej z centralnie zarządzanych komputerów problem ten ma zwykle więcej niż jedną przyczynę, ponieważ instalowanie i uruchamianie oprogramowania podlega dodatkowym regułom bezpieczeństwa. Nieprawidłowość może dotyczyć zarówno aplikacji korzystającej z platformy .NET, jak i samego sposobu wdrażania runtime. Znaczenie ma między innymi rodzaj aplikacji, docelowa wersja .NET, architektura systemu, zakres uprawnień użytkownika oraz to, czy składniki zostały zainstalowane lokalnie, za pomocą narzędzia administracyjnego, czy z pakietu przygotowanego dla całej organizacji. Z tego powodu komunikat o braku pliku DLL nie zawsze oznacza uszkodzenie konkretnego pliku. Może wskazywać na brak całego pakietu, niedopasowaną wersję albo ograniczenie dostępu do zasobu. Warto rozróżnić środowisko uruchomieniowe od zestawu programistycznego. Do samego korzystania z gotowej aplikacji zazwyczaj potrzebny jest runtime, natomiast tworzenie i kompilowanie oprogramowania wymaga dodatkowych narzędzi deweloperskich. Zainstalowanie niewłaściwego pakietu nie musi rozwiązać problemu, a czasem może utrudnić ustalenie, której wersji rzeczywiście oczekuje aplikacja. Znaczenie polityk bezpieczeństwa, zależności i sposobu wdrożeniaW środowisku korporacyjnym uruchamianie .NET Runtime jest zależne od kilku warstw kontroli. Zasady grupowe mogą ograniczać instalowanie programów, wykonywanie plików z określonych lokalizacji albo dostęp do usług potrzebnych podczas wdrożenia. Oprogramowanie ochronne może analizować proces uruchamiania, blokować bibliotekę uznaną za podejrzaną lub izolować plik, którego nie rozpoznaje. Dodatkowym czynnikiem bywają reguły kontroli aplikacji, ograniczenia zapisu w katalogach systemowych oraz wymóg uzyskania zgody administratora. Istotne jest również rozróżnienie między aplikacją opartą na klasycznym .NET Framework a programem korzystającym z nowszych wydań platformy .NET. Nazwy tych środowisk bywają używane zamiennie, choć nie zawsze są wzajemnie zastępowalne. Aplikacja może wymagać konkretnej gałęzi runtime, określonej architektury 32-bitowej lub 64-bitowej, a także dodatkowych komponentów systemu Windows. Próba instalacji innej wersji może nie zmienić zachowania programu, jeżeli jego zależności są zapisane w sposób wymagający konkretnego środowiska. Przydatne jest porównanie kilku komputerów, na których wdrożono tę samą aplikację. Jeżeli problem występuje wyłącznie na jednym stanowisku, podejrzenie pada na lokalną konfigurację, uszkodzone pliki, brak aktualizacji albo indywidualne uprawnienia. Jeżeli błąd pojawia się na wielu urządzeniach jednocześnie, bardziej prawdopodobna staje się zmiana zasad wdrożeniowych, aktualizacja zabezpieczeń, nowy pakiet aplikacji lub niezgodność pomiędzy wersją programu a zatwierdzonym środowiskiem uruchomieniowym. Bezpieczna diagnostyka powinna obejmować sprawdzenie dzienników systemowych, historii aktualizacji, komunikatów narzędzia ochronnego oraz informacji o wersji wymaganej przez aplikację. Nie zaleca się trwałego wyłączania zabezpieczeń w celu wykonania pojedynczego testu. Lepszym rozwiązaniem jest ustalenie, który proces, plik lub katalog został zablokowany, a następnie przekazanie administratorowi dokładnych danych potrzebnych do przygotowania kontrolowanego wyjątku. Typowe komunikaty, objawy i błędy konfiguracyjneJednym z częstszych objawów jest komunikat informujący o braku możliwości znalezienia odpowiedniej wersji środowiska .NET. Może pojawić się także informacja o nieznalezieniu pliku, niezgodnej architekturze, braku punktu wejścia w bibliotece albo nieudanym załadowaniu zależności. W innych przypadkach aplikacja zamyka się bez czytelnego komunikatu, działa tylko po uruchomieniu z podwyższonymi uprawnieniami albo otwiera się na jednym koncie użytkownika, lecz nie na innym. Do typowych przyczyn należy niepełna instalacja runtime, przerwane wdrożenie, uszkodzenie magazynu składników systemu, pozostałość po starszej wersji aplikacji lub błędna kolejność aktualizacji. Problem może wystąpić również wtedy, gdy program został skopiowany z innego komputera bez zainstalowania wymaganych zależności. Samo przeniesienie katalogu aplikacji nie zawsze wystarcza, ponieważ część składników jest rejestrowana w systemie lub pobierana przez firmowy mechanizm dystrybucji. Osobną grupę stanowią błędy związane z uprawnieniami. Aplikacja może próbować zapisywać dane w lokalizacji chronionej, korzystać z pliku konfiguracyjnego niedostępnego dla zwykłego konta albo uruchamiać komponent wymagający zgody administratora. W takiej sytuacji instalacja runtime może być prawidłowa, ale proces startowy zostaje przerwany przed właściwym uruchomieniem programu. Pomocne jest porównanie uprawnień działającego i niedziałającego konta oraz ustalenie, na którym etapie pojawia się odmowa dostępu. Nie powinno się również pomijać wpływu aktualizacji systemu i oprogramowania zabezpieczającego. Zmiana reguł ochrony może zablokować bibliotekę, która wcześniej była uruchamiana bez przeszkód. Z kolei aktualizacja aplikacji może wprowadzić zależność od nowszej wersji runtime, której nie dopuszczono jeszcze do instalacji na wszystkich komputerach. Przed ponowną instalacją warto zachować treść komunikatu, godzinę wystąpienia błędu, nazwę aplikacji, wersję systemu oraz informacje z dzienników. Tak przygotowany opis ułatwia odróżnienie problemu z platformą od problemu z polityką dostępu. Kiedy warto zgłosić sprzęt do serwisu - .NET Runtime nie działa w środowisku korporacyjnymZgłoszenie do serwisu jest uzasadnione, gdy .NET Runtime nie uruchamia aplikacji mimo zastosowania zatwierdzonego pakietu, gdy instalator kończy pracę błędem albo gdy na komputerze występują jednocześnie inne symptomy, takie jak niestabilność systemu, uszkodzone aktualizacje, problemy z usługami lub powtarzające się odmowy dostępu. Warto przekazać technikowi dokładną treść komunikatu, nazwę programu, moment pojawienia się usterki oraz informację, czy problem dotyczy jednego stanowiska, czy większej liczby komputerów. W Warszawie taką diagnostykę można zlecić w serwisie laptopów i komputerów PC działającym pod nazwą Warszawskie Pogotowie Komputerowe 24/7. Przy zgłoszeniu laptopa wykonywana jest darmowa diagnoza LAPTOPA, co pozwala najpierw ustalić, czy źródłem problemu jest brakujący komponent, uszkodzenie systemu, konflikt aktualizacji czy blokada lokalnej konfiguracji. W trakcie sprawdzania analizuje się między innymi stan instalacji .NET, zależności aplikacji, wpisy w dziennikach systemowych, działanie usług, uprawnienia użytkownika oraz reakcję zabezpieczeń. Jeżeli komputer jest zarządzany centralnie, ustalenia mogą zostać przygotowane w sposób przydatny dla administratora, bez obchodzenia obowiązujących reguł. Pozwala to oddzielić usterkę sprzętową od problemu programowego i ograniczyć ryzyko przypadkowego usunięcia ustawień potrzebnych do pracy. Do czasu zakończenia diagnozy nie zaleca się wielokrotnego instalowania przypadkowych wersji runtime, usuwania bibliotek z katalogów systemowych ani ręcznego kasowania wpisów konfiguracyjnych. Takie działania mogą zatrzeć ślady potrzebne do ustalenia przyczyny albo doprowadzić do konfliktu pomiędzy zależnościami aplikacji. Najlepszym punktem wyjścia pozostaje zebranie komunikatów, wskazanie programu, którego dotyczy błąd, oraz sprawdzenie, czy na tym samym komputerze działają inne aplikacje oparte na .NET. |