首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法加载文件或程序集“Microsoft.AspNet.Security.DataProtection”

无法加载文件或程序集“Microsoft.AspNet.Security.DataProtection”
EN

Stack Overflow用户
提问于 2015-02-27 02:12:06
回答 3查看 4.8K关注 0票数 6

在升级到asp.net-5堆栈的最新版本时,我在试图访问SignalR集线器时遇到了以下堆栈跟踪。

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存储库中看到,这一变化似乎已经波及到其他项目。

我删除了对旧程序集的所有引用,搜索了.k目录、我的项目目录、我的GAC、所有内容的全部内容。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-02-27 02:22:51

当然,经过4个小时的努力,我发现了奇怪的原因,就在我发布了这个问题:

为什么在我的整个硬盘驱动器中搜索任何可能提到的旧程序集,原因都是因为对它的引用被巧妙地加密到了由旧版本的程序集创建的XML文件中!

当使用新程序集名称升级到新版本时,必须删除目录的内容:%APPDATA%\Local\ASP.NET\keys BETA,否则将导致此错误!该目录中的xml文件包含解密器的程序集限定类名的加密表示,它将使用旧的"Security.DataProtection“程序集而不是新的程序集。

票数 12
EN

Stack Overflow用户

发布于 2016-05-25 20:55:17

类似于Avi,我发现我在从.NET Core (DNX) RC1迁移到(DotNet) RC2时遇到了问题。

我需要删除的目录是%localappdata%\ASP.NET\DataProtection-Keys

所引用的Microsoft.AspNet.Security.DataProtection中的xml应该是Microsoft.AspNetCore...。而不是试图改变它,我只是删除了目录。

票数 2
EN

Stack Overflow用户

发布于 2016-06-10 21:25:04

我不能评论其他的答案,所以需要添加我自己的答案。正如其他人所说,您需要删除%localappdata%\ASP.NET\DataProtection目录的内容。

但是不要删除整个文件夹。这可能会给以后的dotnetcore应用程序带来问题。Visual可能会说“调试正在开始”并挂起。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28756390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档