1

我们在部署来自 NUGET 的最新 System.Web.Optimization 1.0 库时遇到问题。在我们在 Azure 上的生产实例中,日志充满了 Microsoft.Ajax.Utilities.JScriptException 错误,CPU 达到 100% 并且一切都停止了。内存转储显示以下错误(其中 211 个)。任何帮助将不胜感激!

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        try
        {
            BundleConfig.RegisterBundles(BundleTable.Bundles);  // to enable bundling & minification, set debug to false in web config
        }
        catch (Exception ex)
        {
            ErrorSignal.FromCurrentContext().Raise(ex);
        }

        SetupIgnoredProfilerItems();
    }

错误:


00000000`0655a6b8 000007fe`fcf410dc ntdll!ZwWaitForSingleObject+0xa [x:\win7.obj.amd64fre\minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 180]
00000000`0655a6c0 000007fe`f7b64a6f KERNELBASE!WaitForSingleObjectEx+0x79 [d:\win7sp1_gdr\minkernel\kernelbase\synch.c @ 1301]
00000000`0655a760 000007fe`f7b64a1c clr!CLREventWaitHelper2+0x48 [f:\dd\ndp\clr\src\vm\synch.cpp @ 735]
00000000`0655a7a0 000007fe`f7b648d7 clr!CLREventWaitHelper+0x20 [f:\dd\ndp\clr\src\vm\synch.cpp @ 761]
00000000`0655a800 000007fe`f7d54258 clr!CLREvent::WaitEx+0x5e [f:\dd\ndp\clr\src\vm\synch.cpp @ 864]
00000000`0655a8a0 000007fe`f7d5413f clr!SVR::gc_heap::wait_for_gc_done+0x98 [f:\dd\ndp\clr\src\vm\gc.cpp @ 8028]
00000000`0655a8d0 000007fe`f7f22510 clr!SVR::GCHeap::GarbageCollectGeneration+0xff [f:\dd\ndp\clr\src\vm\gc.cpp @ 26464]
00000000`0655a920 000007fe`f7cae060 clr!SVR::gc_heap::try_allocate_more_space+0x274480 [f:\dd\ndp\clr\src\vm\gc.cpp @ 10232]
00000000`0655a980 000007fe`f7cae1d5 clr!SVR::gc_heap::allocate_more_space+0x40 [f:\dd\ndp\clr\src\vm\gc.cpp @ 10388]
00000000`0655a9b0 000007fe`f7b62f25 clr!SVR::gc_heap::allocate_large_object+0x65 [f:\dd\ndp\clr\src\vm\gc.cpp @ 22530]
00000000`0655aa10 000007fe`f6c5f52d clr!FramedAllocateString+0xae5 [f:\dd\ndp\clr\src\vm\jithelpers.cpp @ 3018]
00000000`0655ae50 000007ff`00645327 mscorlib_ni!System.String.InternalSubString(Int32, Int32, Boolean)+0x2d [f:\dd\ndp\clr\src\BCL\System\String.cs @ 1181]
00000000`0655aeb0 000007ff`00645092 WebGrease!Microsoft.Ajax.Utilities.JScriptException.get_LineText()+0xb7
00000000`0655aef0 000007ff`00644f57 WebGrease!Microsoft.Ajax.Utilities.JSParser.OnCompilerError(Microsoft.Ajax.Utilities.JScriptException)+0xd2
00000000`0655afe0 000007ff`006449c3 WebGrease!Microsoft.Ajax.Utilities.DocumentContext.HandleError(Microsoft.Ajax.Utilities.JScriptException)+0x17
00000000`0655b020 000007ff`006445e4 WebGrease!Microsoft.Ajax.Utilities.Context.HandleError(Microsoft.Ajax.Utilities.JSError, System.String, Boolean)+0x103
00000000`0655b080 000007ff`006460b5 WebGrease!Microsoft.Ajax.Utilities.JSParser.ReportError(Microsoft.Ajax.Utilities.JSError, Microsoft.Ajax.Utilities.Context, Boolean)+0x94
00000000`0655b0e0 000007ff`004e84dc WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseForStatement()+0x5b5
00000000`0655b200 000007ff`004ec324 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseStatement(Boolean)+0x1cc
00000000`0655b2c0 000007ff`004eb502 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseFunction(Microsoft.Ajax.Utilities.FunctionType, Microsoft.Ajax.Utilities.Context)+0x784
00000000`0655b3b0 000007ff`004ea087 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseLeftHandSideExpression(Boolean)+0x1262
00000000`0655b4c0 000007ff`00648391 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseUnaryExpression(Boolean ByRef, Boolean)+0x777
00000000`0655b560 000007ff`004eb38e WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseExpression(Boolean)+0x21
00000000`0655b5c0 000007ff`004ea087 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseLeftHandSideExpression(Boolean)+0x10ee
00000000`0655b6d0 000007ff`00640c85 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseUnaryExpression(Boolean ByRef, Boolean)+0x777
00000000`0655b770 000007ff`004ee184 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseExpressionList(Microsoft.Ajax.Utilities.JSToken)+0x185
00000000`0655b830 000007ff`004eb616 WebGrease!Microsoft.Ajax.Utilities.JSParser.MemberExpression(Microsoft.Ajax.Utilities.AstNode, System.Collections.Generic.List`1<Microsoft.Ajax.Utilities.Context>)+0xe4
00000000`0655b8f0 000007ff`004ea087 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseLeftHandSideExpression(Boolean)+0x1376
00000000`0655ba00 000007ff`004e8889 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseUnaryExpression(Boolean ByRef, Boolean)+0x777
00000000`0655baa0 000007ff`004ec324 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseStatement(Boolean)+0x579
00000000`0655bb60 000007ff`004eb502 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseFunction(Microsoft.Ajax.Utilities.FunctionType, Microsoft.Ajax.Utilities.Context)+0x784
00000000`0655bc50 000007ff`004ea087 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseLeftHandSideExpression(Boolean)+0x1262
00000000`0655bd60 000007ff`004ef226 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseUnaryExpression(Boolean ByRef, Boolean)+0x777
00000000`0655be00 000007ff`004ef242 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseExpression(Microsoft.Ajax.Utilities.AstNode, Boolean, Boolean, Microsoft.Ajax.Utilities.JSToken)+0x3b6
00000000`0655beb0 000007ff`004ef242 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseExpression(Microsoft.Ajax.Utilities.AstNode, Boolean, Boolean, Microsoft.Ajax.Utilities.JSToken)+0x3d2
00000000`0655bf60 000007ff`004ef242 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseExpression(Microsoft.Ajax.Utilities.AstNode, Boolean, Boolean, Microsoft.Ajax.Utilities.JSToken)+0x3d2
00000000`0655c010 000007ff`004e8b04 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseExpression(Microsoft.Ajax.Utilities.AstNode, Boolean, Boolean, Microsoft.Ajax.Utilities.JSToken)+0x3d2
00000000`0655c0c0 000007ff`004e55a9 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseStatement(Boolean)+0x7f4
00000000`0655c180 000007ff`004e3c76 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseStatements()+0x189
00000000`0655c2c0 000007ff`004e2685 WebGrease!Microsoft.Ajax.Utilities.JSParser.Parse(Microsoft.Ajax.Utilities.CodeSettings)+0x86
00000000`0655c310 000007ff`004e24a2 WebGrease!Microsoft.Ajax.Utilities.Minifier.MinifyJavaScript(System.String, Microsoft.Ajax.Utilities.CodeSettings)+0xe5
00000000`0655c3f0 000007ff`004d2096 System_Web_Optimization!System.Web.Optimization.JsMinify.Process(System.Web.Optimization.BundleContext, System.Web.Optimization.BundleResponse)+0x72
00000000`0655c440 000007ff`004e1b12 System_Web_Optimization!System.Web.Optimization.Bundle.ApplyTransforms(System.Web.Optimization.BundleContext, System.String, System.Collections.Generic.IEnumerable`1<System.IO.FileInfo>)+0xc6
00000000`0655c4c0 000007ff`004cf793 System_Web_Optimization!System.Web.Optimization.Bundle.GetBundleUrl(System.Web.Optimization.BundleContext, Boolean)+0x42
00000000`0655c510 000007ff`004cf1e8 System_Web_Optimization!System.Web.Optimization.AssetManager.EliminateDuplicatesAndResolveUrls(System.Collections.Generic.IEnumerable`1<System.String>)+0x263
00000000`0655c610 000007ff`004e1f05 System_Web_Optimization!System.Web.Optimization.AssetManager.DeterminePathsToRender(System.Collections.Generic.IEnumerable`1<System.String>)+0x1d8
00000000`0655c680 000007ff`004cc189 System_Web_Optimization!System.Web.Optimization.AssetManager.RenderScripts(System.Collections.Generic.IEnumerable`1<System.String>)+0x35
00000000`0655c730 000007ff`004c4778 App_Web_keqcxegb!ASP._Page_Views_Shared__Layout_cshtml.Execute()+0x1f29
4

3 回答 3

3

您可以通过检查 fiddler(或任何其他工具)中该 JS 捆绑包的响应来查看捆绑 JS 的确切解析错误。解析错误将在顶部的 JS 注释代码中。通过修复 JS,您将摆脱服务器上的异常。

很高兴知道错误是否来自 jquery 本身。

于 2012-10-10T19:36:52.313 回答
2

WebGrease 1.3 版解决了这个问题

于 2012-12-18T20:17:55.703 回答
1

由于无法解析 JS 包,看起来 WebGrease 正在抛出异常。您是否可以提供一个指向您的 JS 包内容的指针,以便 WebGrease 团队可以调查并希望找出导致潜在问题的原因?

于 2012-10-09T20:51:57.310 回答