成员Microsoft.IdentityModel.Claims.ClaimsPrincipal未解析类型

时间:2013-02-13 10:21:59

标签: asp.net-mvc azure wif

我将一个MVC 4应用程序部署到一个已经工作了几个月的Azure云服务。突然,应用程序已停止工作,我在允许匿名访问的页面上看到401错误。深入研究事件日志会发现:

<EventData>
 <Data>System.AppDomain/50824127</Data>
 <Data>System.Runtime.Serialization.SerializationException: Type is not resolved for member 'Microsoft.IdentityModel.Claims.ClaimsPrincipal,Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. at System.Web.Hosting.ApplicationManager.GetUpdatedTotalCacheSize(Int64 sizeUpdate) at System.Web.Hosting.ObjectCacheHost.System.Runtime.Caching.Hosting.IMemoryCacheManager.UpdateCacheSize(Int64 size, MemoryCache memoryCache) at System.Runtime.Caching.CacheMemoryMonitor.GetCurrentPressure() at System.Runtime.Caching.MemoryMonitor.Update() at System.Runtime.Caching.MemoryCacheStatistics.CacheManagerThread(Int32 minPercent) at System.Threading.ExecutionContext.runTryCode(Object userData) at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) at System.Threading._TimerCallback.PerformTimerCallback(Object state)</Data>
 <Data>w3wp</Data>
 <Data>2548</Data>
 </EventData>

经过数小时和数小时的故障排除和检查配置后,我无法找出发生这种情况的原因。程序集Microsoft.IdentityModel,3.5.0.0位于部署包中的bin文件夹中,项目具有对WIF nuget包的正确引用。

更糟糕的是,我的项目在一个azure云服务中工作,而在另一个(如上所述失败)中没有。似乎只有有限数量的相关问题,例如Type is not resolved for member "Microsoft.IdentityModel.Claims.ClaimsPrincipal,Microsoft.IdentityModel",但这个问题与在开发人员工作站上运行sitefinity有关,我的问题出在云端。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我们的Azure项目中存在类似问题,但不完全相同。我们的错误是

Unable to Find Assembly 'Microsoft.IdentityModel'

原因是Azure虚拟机默认情况下没有WIF。即使我们的bin文件夹中有Microsoft.IdentityModel,当应用程序尝试解析对Microsoft.IdentityModel的引用时,即使它不相关,它也会失败并抛出缺少的引用错误。

可以通过在启动任务中安装WIF来解决此问题。此链接包含有关如何执行此操作的详细信息。

http://blogs.msdn.com/b/sriharsha/archive/2012/04/07/windows-azure-unable-to-find-assembly-microsoft-identitymodel.aspx