2015-02-27 24 views
5

Podczas aktualizacji do najnowszej wersji stosu asp.net-5 podczas próby uzyskania dostępu do mojego koncentratora SignalR wystąpił następujący ślad stosu.Nie można załadować pliku lub zespołu "Microsoft.AspNet.Security.DataProtection"

FileNotFoundException: Could not load file or assembly 'Microsoft.AspNet.Security.DataProtection, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified. System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName, ObjectHandleOnStack type) System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName) System.RuntimeType.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark) System.Type.GetType(String typeName, Boolean throwOnError) Microsoft.AspNet.DataProtection.KeyManagement.XmlKeyManager.ParseKeyElement(XElement keyElement) Microsoft.AspNet.DataProtection.KeyManagement.XmlKeyManager.GetAllKeys() Microsoft.AspNet.DataProtection.KeyManagement.KeyRingProvider.CreateCachedKeyRingInstanceUnderLock(DateTime utcNow, CachedKeyRing existingCachedKeyRing) Microsoft.AspNet.DataProtection.KeyManagement.KeyRingProvider.GetCurrentKeyRing() Microsoft.AspNet.DataProtection.KeyManagement.KeyRingBasedDataProtector.Protect(Byte[] unprotectedData) Microsoft.AspNet.SignalR.Infrastructure.DataProtectionProviderProtectedData.Protect(String data, String purpose)

Rozumiem, że ten zespół został przemianowany Microsoft.AspNet.DataProtection i widzę z aspnet repozytoriów GitHub, że ta zmiana wydaje się pomarszczonej przez innych projektach.

Usunąłem wszystkie odniesienia do starego zespołu, przeszukałem CAŁĄ zawartość katalogu .k, mój katalog projektu, mój GAC, WSZYSTKO.

Odpowiedz

11

Oczywiście, po 4 godzinach próbuje dowiedzieć się tego, odkrywam cos przyczynę nim zaraz po opublikować pytanie:

Powodem czyszczenie całego dysku twardego za ewentualne wzmianki o stary montaż się nie powiódł, ponieważ odniesienie do niego zostało sprytnie ZAAKCEPTOWANE w pliku XML w katalogu% APPDATA% utworzonym przez starą wersję zestawu!

Podczas aktualizacji do nowej wersji z nową nazwą zestawu MUSISZ usunąć zawartość katalogu:% APPDATA% \ Lokalne \ ASP.NET \ keys-BETA lub skończy się ten błąd! Plik xml w tym katalogu zawiera zaszyfrowaną reprezentację kwalifikowanej do zestawu nazwy klasy deszyfratora, która będzie używać starego zestawu "Security.DataProtection" zamiast nowego.

+0

Prawidłowo, po prostu usuń ten folder, a wszystko będzie dobrze. Kolejna poprawka została wprowadzona wkrótce po tej zmianie, aby usunąć konieczność usunięcia folderu. – Eilon

2

Podobny do Avi Cherry, stwierdziłem, że mam ten problem, przechodząc z .NET Core (DNX) RC1 do (DotNet) RC2.

Katalog, który musiałem usunąć, to %localappdata%\ASP.NET\DataProtection-Keys.

xml z wewnętrznym odnośnikiem Microsoft.AspNet.Security.DataProtection, który powinien był być Microsoft.AspNetCore.... Zamiast próbować to zmienić, po prostu usunąłem katalog.

1

Nie mogę komentować innych odpowiedzi, więc muszę dodać własne. Jak powiedzieli inni, musisz usunąć zawartość katalogu % localappdata% \ ASP.NET \ DataProtection-Keys .

Ale NIE usuwaj całego folderu. Może to powodować problemy w aplikacjach dotnetcore później. Visual Studio może powiedzieć "debugowanie się uruchamia" i po prostu zawiesić.

Powiązane problemy