Исправление исключения инициализации документа - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть клиент WPF с принтами WPF.Печать выглядит примерно так:

https://www.codeproject.com/Articles/607150/WPFplusBasicplusPrintplusRendering

с использованием добавления UserControl в FixedDocument и рендеринга в xps.Мне нужно перенести их на сервер.У нас есть сервис WCF для общения с клиентом.Я пытался переместить их непосредственно в WCF, но у меня возникла проблема с квартирой в состоянии потока.Услуга WCF является квартирой MTA, но рендеринг FixedDocument должен быть в STA.Решить эту проблему можно следующим образом.

Thread t = new Thread(() =>
        {
            FixedDocument fixedDoc = new FixedDocument();
        });

Когда я запускаю этот код на локальном хосте, все будет хорошо.Но неожиданно в IIS возвращается исключение.

System.TypeInitializationException: инициализатор типа для 'System.Windows.Documents.FixedDocument' вызвал исключение.---> System.TypeInitializationException: инициализатор типа для 'System.Windows.ContentElement' вызвал исключение.---> System.TypeInitializationException: инициализатор типа для 'System.Windows.UIElement' вызвал исключение.---> System.TypeInitializationException: инициализатор типа для 'System.Windows.Media.Transform' вызвал исключение.---> System.ComponentModel.Win32Exception: операция успешно завершена в MS.Win32.UnsafeNativeMethods.RegisterClassEx (WNDCLASSEX_D wc_d) в MS.Win32.HwndWrapper..ctor (Int32 classStyle, стиль Int32, Int32 exStyle, Int32 x, x32 x,, Ширина Int32, высота Int32, имя строки, родительский элемент IntPtr, хуки HwndWrapperHook []) в System.Windows.Threading.Dispatcher..ctor () в System.Windows.Threading.Dispatcher.get_CurrentDispatcher () в System.Windows.Media.Transform.MakeIdentityTransform () в System.Windows.Media.Transform..cctor () --- Конец внутренней трассировки стека исключений --- в System.Windows.UIElement..cctor () --- Конец внутренней трассировки стека исключений--- at System.Windows.ContentElement..cctor () --- Конец внутренней трассировки стека исключений --- в System.Windows.Documents.FixedDocument..cctor () --- Конец внутренней трассировки стека исключений -- в WpfPrintProvider.WpfPrintProvider.DoIt (действие ServiceAction) в C: \ GoldenSupport \ GrootService \ WpfPrintProvider \ WpfPrintProvider.cs: строка 88

Кто-нибудь знает, с чем связано это исключение и чем я могу помочь?

Спасибо за помощь.

...