【问题标题】:Cannot find embedded resource assembly named Yahoo.Yui.Compressor.Resources.Microsoft.IdentityModel.dll找不到名为 Yahoo.Yui.Compressor.Resources.Microsoft.IdentityModel.dll 的嵌入式资源程序集
【发布时间】:2012-10-23 05:36:09
【问题描述】:

我在我的 NopCommerce 网站上使用了一个名为 BundleTransformer 的组件,它扩展了 MVC4 的“捆绑”功能。它使用另一个名为 Yahoo.Yui.Compressing 的组件来转换和压缩 javascript 文件。一切正常。 JS 文件按预期压缩和捆绑。

但是,AntiForgeryToken 似乎存在问题。在我的注册页面中,我在表单中添加了这个简单的行:

@Html.AntiForgeryToken()

这似乎与 Yahoo.Yui.Compressing 冲突。我收到的错误消息如下:

Cannot find embedded resource assembly named Yahoo.Yui.Compressor.Resources.Microsoft.IdentityModel.dll

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.DllNotFoundException: Cannot find embedded resource assembly named Yahoo.Yui.Compressor.Resources.Microsoft.IdentityModel.dll

Source Error: 


Line 43: @using (Html.BeginForm())
Line 44: {
Line 45:     @Html.AntiForgeryToken()
Line 46:     <div class="page registration-page">
Line 47:         <div class="page-body">

Source File: e:\www\....\TheWebsite\Themes\TheTheme\Views\Customer\Register.cshtml    Line: 45 

Stack Trace: 


[DllNotFoundException: Cannot find embedded resource assembly named Yahoo.Yui.Compressor.Resources.Microsoft.IdentityModel.dll]
   Yahoo.Yui.Compressor.AssemblyResolver.<Initialise>b__0(Object sender, ResolveEventArgs args) +248
   System.AppDomain.OnAssemblyResolveEvent(RuntimeAssembly assembly, String assemblyFullName) +224

[FileLoadException: Could not load file or assembly 'Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. Could not find the specified DllImport Dll.]
   System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName, ObjectHandleOnStack type) +0
   System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName) +70
   System.RuntimeType.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark) +39
   System.Type.GetType(String typeName) +50
   System.Web.Helpers.Claims.ClaimsIdentityConverter.GetDefaultConverters() +71
   System.Web.Helpers.Claims.ClaimsIdentityConverter..cctor() +91

[TypeInitializationException: The type initializer for 'System.Web.Helpers.Claims.ClaimsIdentityConverter' threw an exception.]
   System.Web.Helpers.Claims.ClaimsIdentityConverter.get_Default() +14
   System.Web.Helpers.AntiForgery.CreateSingletonAntiForgeryWorker() +124
   System.Web.Helpers.AntiForgery..cctor() +8

[TypeInitializationException: The type initializer for 'System.Web.Helpers.AntiForgery' threw an exception.]
   System.Web.Helpers.AntiForgery.GetHtml() +45
   System.Web.Mvc.HtmlHelper.AntiForgeryToken() +21
   ASP._Page_Themes_CambridgeSatchel_Views_Customer_Register_cshtml.Execute() in e:\www\....\TheWebsite\Themes\TheTheme\Views\Customer\Register.cshtml:45
   System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +199
   System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +104
   System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +78
   System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +236
   System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) +107
   System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +291
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +13
   System.Web.Mvc.<>c__DisplayClass1a.<InvokeActionResultWithFilters>b__17() +23
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +245
   System.Web.Mvc.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19() +22
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +245
   System.Web.Mvc.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19() +22
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +245
   System.Web.Mvc.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19() +22
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +245
   System.Web.Mvc.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19() +22
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +245
   System.Web.Mvc.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19() +22
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +245
   System.Web.Mvc.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19() +22
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +176
   System.Web.Mvc.Async.<>c__DisplayClass2a.<BeginInvokeAction>b__20() +75
   System.Web.Mvc.Async.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult asyncResult) +99
   System.Web.Mvc.Async.WrappedAsyncResult`1.End() +50
   System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27
   System.Web.Mvc.<>c__DisplayClass1d.<BeginExecuteCore>b__18(IAsyncResult asyncResult) +14
   System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +23
   System.Web.Mvc.Async.WrappedAsyncResult`1.End() +55
   System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +39
   System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +23
   System.Web.Mvc.Async.WrappedAsyncResult`1.End() +55
   System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +29
   System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10
   System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__3(IAsyncResult asyncResult) +25
   System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +23
   System.Web.Mvc.Async.WrappedAsyncResult`1.End() +55
   System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +31
   System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9629708
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155

有人知道解决办法吗?

这似乎是 Yahoo.Yui.Compressor、BundleTransformer 或 AntiForgeryToken 之间的错误。

【问题讨论】:

  • 你能在你的系统上的任何地方找到Yahoo.Yui.Compressor.Resources.Microsoft.IdentityModel.dll吗?如果是,如果将其复制到与 mscorlib 相同的文件夹会发生什么?
  • 没有。它在任何地方都不存在。
  • 这不是问题吗?找到那个文件或重新安装它附带的任何东西,你就可以开始了吗?
  • 没有。那不是问题。它似乎在寻找一个不存在的 dll 文件。这似乎是 Yahoo.Yui.Compressor、BundleTransformer 或 AntiForgeryToken 之间的错误。
  • 你是说不需要dll?

标签: asp.net-mvc yui-compressor antiforgerytoken


【解决方案1】:

升级到 BundleTransformer 1.6.6 解决了这个问题。

BundleTransformer 1.6.5 和 YUI Compressor .NET 2.1.0.0 存在问题,该问题已在上一版本中修复(请参阅 http://bundletransformer.codeplex.com/discussions/398013/ 上的 Taritsyn 评论)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 2015-03-09
    • 1970-01-01
    • 2011-01-09
    • 1970-01-01
    相关资源
    最近更新 更多