2015-02-27 8 views
5

लोड नहीं कर सका जब asp.net-5 ढेर के नवीनतम संस्करण के उन्नयन, मैं निम्नलिखित स्टैक ट्रेस मेरी SignalR हब तक पहुंचने के प्रयास का सामना करना पड़ा।फ़ाइल या विधानसभा '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)

मैं समझता हूं कि इस विधानसभा नाम दिया गया है Microsoft.AspNet.DataProtection और मैं aspnet GitHub खजाने है कि यह परिवर्तन अन्य परियोजनाओं के माध्यम लहराया है लगता है से देखते हैं।

मैं पुराने विधानसभा के सभी संदर्भ हटा दिया है तो .k निर्देशिका की सारी सामग्री, अपने प्रोजेक्ट निर्देशिका, मेरे GAC, सब कुछ की खोज।

उत्तर

11
बेशक

, इस पता लगाने की कोशिश की 4 घंटे के बाद, मैं इसके बारे में विचित्र कारण को खोजने मैं प्रश्न पोस्ट सही होने के बाद:

कारण है कि वर्ष के किसी भी संभावित उल्लेख के लिए अपने पूरे हार्ड ड्राइव परिशोध असेंबली कुछ भी नहीं हुआ क्योंकि इसका संदर्भ असेंबली के पुराने संस्करण द्वारा बनाई गई मेरी% APPDATA% निर्देशिका में एक XML फ़ाइल में चतुराई से एनक्रिप्टेड किया गया था!

नए असेंबली नाम के साथ नए संस्करण में अपग्रेड करते समय, आपको निर्देशिका की सामग्री को हटाना होगा:% APPDATA% \ Local \ ASP.NET \ keys-BETA या आप इस त्रुटि के साथ समाप्त हो जाएंगे! इस निर्देशिका में xml फ़ाइल में डिक्रिप्टर के असेंबली-योग्य क्लासनाम का एन्क्रिप्टेड प्रतिनिधित्व होता है, जो कि नए के बजाय पुरानी "सुरक्षा। डेटा सुरक्षा" असेंबली का उपयोग करेगा।

+0

सही, बस उस फ़ोल्डर को हटाएं और आप ठीक होंगे। फ़ोल्डर को हटाने की आवश्यकता को हटाने के लिए उस परिवर्तन के तुरंत बाद एक और फिक्स बनाया गया था। – Eilon

2

एवी चेरी के समान, मैंने पाया कि मुझे यह समस्या .NET कोर (डीएनएक्स) आरसी 1 से (डॉटनेट) आरसी 2 तक चल रही है।

निर्देशिका मेरे द्वारा हटाए जाने के लिए आवश्यक %localappdata%\ASP.NET\DataProtection-Keys था।

Microsoft.AspNet.Security.DataProtection संदर्भित एक्सएमएल, जो Microsoft.AspNetCore... होना चाहिए था। इसे बदलने की कोशिश करने के बजाय, मैंने अभी निर्देशिका हटा दी है।

1

मैं अन्य उत्तर पर टिप्पणी नहीं कर सकते हैं, तो अपने ही जोड़ने की जरूरत है। रूप में अन्य लोगों ने कहा आप % LOCALAPPDATA% \ ASP.NET \ DataProtection-कुंजी निर्देशिका की सामग्री को हटाने के लिए की जरूरत है।

लेकिन संपूर्ण फ़ोल्डर हटाना नहीं है। इससे बाद में डॉटनेटकोर ऐप्स के लिए समस्याएं हो सकती हैं। विजुअल स्टूडियो कह सकता है "डिबगिंग शुरू हो रही है" और बस लटकाओ।

संबंधित मुद्दे