• WPF 使用字体引发的 CLR20r3 问题排查


    开发机器上运行完好,拷贝置目标机器上出现此问题

     问题排查:

    计算机-->管理-->事件查看器--->windows日志-->应用程序

    Application Error  看不懂没啥用

    打开.NET Runtime   查看程序异常信息

    日志名称: Application
    来源: .NET Runtime
    日期: 2018/4/3 13:43:29
    描述:
    Application: WPFTestPage.exe
    Framework Version: v4.0.30319
    Description: The process was terminated due to an unhandled exception.
    Exception Info: System.IO.FileFormatException
    Stack:
    at MS.Internal.Text.TextInterface.Native.Util.ConvertHresultToException(Int32)
    at MS.Internal.Text.TextInterface.Font.CreateFontFace()
    at MS.Internal.Text.TextInterface.Font.AddFontFaceToCache()
    at MS.Internal.Text.TextInterface.Font.GetFontFace()
    at System.Windows.Media.GlyphTypeface..ctor(MS.Internal.Text.TextInterface.Font)
    at MS.Internal.FontFace.PhysicalFontFamily.GetGlyphTypeface(System.Windows.FontStyle, System.Windows.FontWeight, System.Windows.FontStretch)
    at MS.Internal.FontFace.PhysicalFontFamily.MS.Internal.FontFace.IFontFamily.GetTypefaceMetrics(System.Windows.FontStyle, System.Windows.FontWeight, System.Windows.FontStretch)
    at System.Windows.Media.Typeface.ConstructCachedTypeface()
    at System.Windows.Media.Typeface.get_CachedTypeface()
    at System.Windows.Media.Typeface.CheckFastPathNominalGlyphs(System.Windows.Media.TextFormatting.CharacterBufferRange, Double, Double, Double, Boolean, Boolean, System.Globalization.CultureInfo, System.Windows.Media.TextFormattingMode, Boolean, Boolean, Int32 ByRef)
    at MS.Internal.TextFormatting.SimpleRun.CreateSimpleTextRun(System.Windows.Media.TextFormatting.CharacterBufferRange, System.Windows.Media.TextFormatting.TextRun, MS.Internal.TextFormatting.TextFormatterImp, Int32, Boolean, Boolean)
    at MS.Internal.TextFormatting.SimpleRun.Create(MS.Internal.TextFormatting.FormatSettings, System.Windows.Media.TextFormatting.CharacterBufferRange, System.Windows.Media.TextFormatting.TextRun, Int32, Int32, Int32, Int32, Int32)
    at MS.Internal.TextFormatting.SimpleTextLine.Create(MS.Internal.TextFormatting.FormatSettings, Int32, Int32)
    at MS.Internal.TextFormatting.TextFormatterImp.FormatLineInternal(System.Windows.Media.TextFormatting.TextSource, Int32, Int32, Double, System.Windows.Media.TextFormatting.TextParagraphProperties, System.Windows.Media.TextFormatting.TextLineBreak, System.Windows.Media.TextFormatting.TextRunCache)
    at MS.Internal.TextFormatting.TextFormatterImp.FormatLine(System.Windows.Media.TextFormatting.TextSource, Int32, Double, System.Windows.Media.TextFormatting.TextParagraphProperties, System.Windows.Media.TextFormatting.TextLineBreak, System.Windows.Media.TextFormatting.TextRunCache)
    at MS.Internal.Text.Line.Format(Int32, Double, System.Windows.Media.TextFormatting.TextParagraphProperties, System.Windows.Media.TextFormatting.TextLineBreak, System.Windows.Media.TextFormatting.TextRunCache, Boolean)
    at System.Windows.Controls.TextBlock.MeasureOverride(System.Windows.Size)
    at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)
    at System.Windows.UIElement.Measure(System.Windows.Size)
    at MS.Internal.Helper.MeasureElementWithSingleChild(System.Windows.UIElement, System.Windows.Size)
    at System.Windows.Controls.ContentPresenter.MeasureOverride(System.Windows.Size)
    at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)
    at System.Windows.UIElement.Measure(System.Windows.Size)
    at System.Windows.Controls.Border.MeasureOverride(System.Windows.Size)
    at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)
    at System.Windows.UIElement.Measure(System.Windows.Size)
    at System.Windows.Controls.Control.MeasureOverride(System.Windows.Size)
    at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)
    at System.Windows.UIElement.Measure(System.Windows.Size)
    at System.Windows.Controls.Grid.MeasureOverride(System.Windows.Size)
    at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)
    at System.Windows.UIElement.Measure(System.Windows.Size)
    at System.Windows.Controls.Grid.MeasureCell(Int32, Boolean)
    at System.Windows.Controls.Grid.MeasureCellsGroup(Int32, System.Windows.Size, Boolean, Boolean, Boolean ByRef)
    at System.Windows.Controls.Grid.MeasureOverride(System.Windows.Size)
    at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)
    at System.Windows.UIElement.Measure(System.Windows.Size)
    at MS.Internal.Helper.MeasureElementWithSingleChild(System.Windows.UIElement, System.Windows.Size)
    at System.Windows.Controls.ContentPresenter.MeasureOverride(System.Windows.Size)
    at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)
    at System.Windows.UIElement.Measure(System.Windows.Size)
    at System.Windows.Documents.AdornerDecorator.MeasureOverride(System.Windows.Size)
    at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)
    at System.Windows.UIElement.Measure(System.Windows.Size)
    at System.Windows.Controls.Border.MeasureOverride(System.Windows.Size)
    at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)
    at System.Windows.UIElement.Measure(System.Windows.Size)
    at System.Windows.Window.MeasureOverrideHelper(System.Windows.Size)
    at System.Windows.Window.MeasureOverride(System.Windows.Size)
    at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)
    at System.Windows.UIElement.Measure(System.Windows.Size)
    at System.Windows.Interop.HwndSource.SetLayoutSize()
    at System.Windows.Interop.HwndSource.set_RootVisualInternal(System.Windows.Media.Visual)
    at System.Windows.Interop.HwndSource.set_RootVisual(System.Windows.Media.Visual)
    at System.Windows.Window.SetRootVisual()
    at System.Windows.Window.SetRootVisualAndUpdateSTC()
    at System.Windows.Window.SetupInitialState(Double, Double, Double, Double)
    at System.Windows.Window.CreateSourceWindow(Boolean)
    at System.Windows.Window.CreateSourceWindowDuringShow()
    at System.Windows.Window.SafeCreateWindowDuringShow()
    at System.Windows.Window.ShowHelper(System.Object)
    at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
    at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
    at System.Windows.Threading.DispatcherOperation.InvokeImpl()
    at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)
    at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
    at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
    at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
    at System.Windows.Threading.DispatcherOperation.Invoke()
    at System.Windows.Threading.Dispatcher.ProcessQueue()
    at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
    at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
    at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
    at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
    at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
    at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
    at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
    at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
    at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
    at System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame)
    at System.Windows.Threading.Dispatcher.Run()
    at System.Windows.Application.RunDispatcher(System.Object)
    at System.Windows.Application.RunInternal(System.Windows.Window)
    at System.Windows.Application.Run(System.Windows.Window)
    at System.Windows.Application.Run()
    at SLCashierDesk.App.Main()

    事件 Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
    <System>
    <Provider Name=".NET Runtime" />
    <EventID Qualifiers="0">1026</EventID>
    <Level>2</Level>
    <Task>0</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2018-04-03T05:43:29.000000000Z" />
    <EventRecordID>2627</EventRecordID>
    <Channel>Application</Channel>
    <Computer>Z-PC</Computer>
    <Security />
    </System>
    <EventData>
    <Data>Application: WPFTestPage.exe
    Framework Version: v4.0.30319
    Description: The process was terminated due to an unhandled exception.
    Exception Info: System.IO.FileFormatException
    Stack:
    at MS.Internal.Text.TextInterface.Native.Util.ConvertHresultToException(Int32)
    at MS.Internal.Text.TextInterface.Font.CreateFontFace()
    at MS.Internal.Text.TextInterface.Font.AddFontFaceToCache()
    at MS.Internal.Text.TextInterface.Font.GetFontFace()
    at System.Windows.Media.GlyphTypeface..ctor(MS.Internal.Text.TextInterface.Font)
    at MS.Internal.FontFace.PhysicalFontFamily.GetGlyphTypeface(System.Windows.FontStyle, System.Windows.FontWeight, System.Windows.FontStretch)
    at MS.Internal.FontFace.PhysicalFontFamily.MS.Internal.FontFace.IFontFamily.GetTypefaceMetrics(System.Windows.FontStyle, System.Windows.FontWeight, System.Windows.FontStretch)
    at System.Windows.Media.Typeface.ConstructCachedTypeface()
    at System.Windows.Media.Typeface.get_CachedTypeface()
    at System.Windows.Media.Typeface.CheckFastPathNominalGlyphs(System.Windows.Media.TextFormatting.CharacterBufferRange, Double, Double, Double, Boolean, Boolean, System.Globalization.CultureInfo, System.Windows.Media.TextFormattingMode, Boolean, Boolean, Int32 ByRef)
    at MS.Internal.TextFormatting.SimpleRun.CreateSimpleTextRun(System.Windows.Media.TextFormatting.CharacterBufferRange, System.Windows.Media.TextFormatting.TextRun, MS.Internal.TextFormatting.TextFormatterImp, Int32, Boolean, Boolean)
    at MS.Internal.TextFormatting.SimpleRun.Create(MS.Internal.TextFormatting.FormatSettings, System.Windows.Media.TextFormatting.CharacterBufferRange, System.Windows.Media.TextFormatting.TextRun, Int32, Int32, Int32, Int32, Int32)
    at MS.Internal.TextFormatting.SimpleTextLine.Create(MS.Internal.TextFormatting.FormatSettings, Int32, Int32)
    at MS.Internal.TextFormatting.TextFormatterImp.FormatLineInternal(System.Windows.Media.TextFormatting.TextSource, Int32, Int32, Double, System.Windows.Media.TextFormatting.TextParagraphProperties, System.Windows.Media.TextFormatting.TextLineBreak, System.Windows.Media.TextFormatting.TextRunCache)
    at MS.Internal.TextFormatting.TextFormatterImp.FormatLine(System.Windows.Media.TextFormatting.TextSource, Int32, Double, System.Windows.Media.TextFormatting.TextParagraphProperties, System.Windows.Media.TextFormatting.TextLineBreak, System.Windows.Media.TextFormatting.TextRunCache)
    at MS.Internal.Text.Line.Format(Int32, Double, System.Windows.Media.TextFormatting.TextParagraphProperties, System.Windows.Media.TextFormatting.TextLineBreak, System.Windows.Media.TextFormatting.TextRunCache, Boolean)
    at System.Windows.Controls.TextBlock.MeasureOverride(System.Windows.Size)
    at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)
    at System.Windows.UIElement.Measure(System.Windows.Size)
    at MS.Internal.Helper.MeasureElementWithSingleChild(System.Windows.UIElement, System.Windows.Size)
    at System.Windows.Controls.ContentPresenter.MeasureOverride(System.Windows.Size)
    at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)
    at System.Windows.UIElement.Measure(System.Windows.Size)
    at System.Windows.Controls.Border.MeasureOverride(System.Windows.Size)
    at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)
    at System.Windows.UIElement.Measure(System.Windows.Size)
    at System.Windows.Controls.Control.MeasureOverride(System.Windows.Size)
    at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)
    at System.Windows.UIElement.Measure(System.Windows.Size)
    at System.Windows.Controls.Grid.MeasureOverride(System.Windows.Size)
    at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)
    at System.Windows.UIElement.Measure(System.Windows.Size)
    at System.Windows.Controls.Grid.MeasureCell(Int32, Boolean)
    at System.Windows.Controls.Grid.MeasureCellsGroup(Int32, System.Windows.Size, Boolean, Boolean, Boolean ByRef)
    at System.Windows.Controls.Grid.MeasureOverride(System.Windows.Size)
    at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)
    at System.Windows.UIElement.Measure(System.Windows.Size)
    at MS.Internal.Helper.MeasureElementWithSingleChild(System.Windows.UIElement, System.Windows.Size)
    at System.Windows.Controls.ContentPresenter.MeasureOverride(System.Windows.Size)
    at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)
    at System.Windows.UIElement.Measure(System.Windows.Size)
    at System.Windows.Documents.AdornerDecorator.MeasureOverride(System.Windows.Size)
    at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)
    at System.Windows.UIElement.Measure(System.Windows.Size)
    at System.Windows.Controls.Border.MeasureOverride(System.Windows.Size)
    at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)
    at System.Windows.UIElement.Measure(System.Windows.Size)
    at System.Windows.Window.MeasureOverrideHelper(System.Windows.Size)
    at System.Windows.Window.MeasureOverride(System.Windows.Size)
    at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)
    at System.Windows.UIElement.Measure(System.Windows.Size)
    at System.Windows.Interop.HwndSource.SetLayoutSize()
    at System.Windows.Interop.HwndSource.set_RootVisualInternal(System.Windows.Media.Visual)
    at System.Windows.Interop.HwndSource.set_RootVisual(System.Windows.Media.Visual)
    at System.Windows.Window.SetRootVisual()
    at System.Windows.Window.SetRootVisualAndUpdateSTC()
    at System.Windows.Window.SetupInitialState(Double, Double, Double, Double)
    at System.Windows.Window.CreateSourceWindow(Boolean)
    at System.Windows.Window.CreateSourceWindowDuringShow()
    at System.Windows.Window.SafeCreateWindowDuringShow()
    at System.Windows.Window.ShowHelper(System.Object)
    at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
    at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
    at System.Windows.Threading.DispatcherOperation.InvokeImpl()
    at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)
    at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
    at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
    at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
    at System.Windows.Threading.DispatcherOperation.Invoke()
    at System.Windows.Threading.Dispatcher.ProcessQueue()
    at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
    at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
    at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
    at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
    at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
    at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
    at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
    at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
    at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
    at System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame)
    at System.Windows.Threading.Dispatcher.Run()
    at System.Windows.Application.RunDispatcher(System.Object)
    at System.Windows.Application.RunInternal(System.Windows.Window)
    at System.Windows.Application.Run(System.Windows.Window)
    at System.Windows.Application.Run()
    at SLCashierDesk.App.Main()
    </Data>
    </EventData>
    </Event>

    出现

    Description: The process was terminated due to an unhandled exception.
    Exception Info: System.IO.FileFormatException   IO异常 
    说明使用了不存在的文件

    继续查看异常信息 

    at MS.Internal.Text.TextInterface.Native.Util.ConvertHresultToException(Int32)
    at MS.Internal.Text.TextInterface.Font.CreateFontFace()
    at MS.Internal.Text.TextInterface.Font.AddFontFaceToCache()
    at MS.Internal.Text.TextInterface.Font.GetFontFace()

    font 跟字体有关     ,经过排查 发现 开发机器上安装并且使用的字体,而目标机器上未安装字体文件 于是产生此错误!

  • 相关阅读:
    产品经理怎么样用图表传达数据信息(多图)
    劣质成本分析(2/3+3/3)
    劣质成本分析(1/3)
    《归来》小诗二首
    减少过程中的浪费(2/2)
    减少过程中的浪费(1/2)
    三种过程分析工具
    必知-网站常用度量指标(2/2)
    必知-网站常用度量指标(1/2)
    产品经理网站数据分析之测量问题现状(四)
  • 原文地址:https://www.cnblogs.com/shenwenbo/p/8708077.html
Copyright © 2020-2023  润新知