[WPF] Медленный запуск в ограниченном домене.
От: adontz Грузия http://adontz.wordpress.com/
Дата: 21.05.11 19:54
Оценка:

Условия

Простейшее WPF окно.
  XAML
<Window
    x:Class="Rosmurta.Extensibility.DefaultUI.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow"
    Height="480"
    Width="640">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="24" />
            <RowDefinition Height="*" />
            <RowDefinition Height="24" />
        </Grid.RowDefinitions>

        <Menu>
            <MenuItem Header="File">
                <MenuItem Header="Exit" />
            </MenuItem>
        </Menu>

        <StatusBar Grid.Row="2">
            <StatusBarItem Content="Status bar..." />
        </StatusBar>
    </Grid>
</Window>

Ограниченный AppDomain
  C#
PermissionSet permissionSet = new PermissionSet(null);

permissionSet.AddPermission(new SecurityPermission(SecurityPermissionFlag.ControlAppDomain | SecurityPermissionFlag.Execution | SecurityPermissionFlag.SerializationFormatter));
permissionSet.AddPermission(new ReflectionPermission(ReflectionPermissionFlag.MemberAccess));

AppDomainSetup appDomainSetup = AppDomain.CurrentDomain.SetupInformation;

_appDomain = AppDomain.CreateDomain(name, null, appDomainSetup, permissionSet);


Окно в обычном домене открывается меньше чем за секунду. Не поленился сравнил, окно WinForms открывается меньше чем за секунду.

Проблема

Окно в ограниченном домене открывается шесть секунд.
Меню File при первом обращении открывается секунду (потом нормально).
Проблема проявляется стабильно, при каждом запуске.

Дополнительная информация

  Debug Output WPF версии
<-- Запускаю приложение -->

'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'D:\Projects\TrifleSoft\Rosmurta\Executables\Modules\Rosmurta.Core.exe', Symbols loaded.
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'D:\Projects\TrifleSoft\Rosmurta\Executables\Modules\Nabu.Collections.dll', Symbols loaded.
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll'
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'D:\Projects\TrifleSoft\Rosmurta\Executables\Modules\Nabu.PlugIn.dll', Symbols loaded.
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'D:\Projects\TrifleSoft\Rosmurta\Executables\Modules\Nabu.dll', Symbols loaded.
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'D:\Projects\TrifleSoft\Rosmurta\Executables\Modules\Nabu.IO.dll', Symbols loaded.
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll'
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'D:\Projects\TrifleSoft\Rosmurta\Executables\Modules\Nabu.Platform.dll', Symbols loaded.
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll'
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'D:\Projects\TrifleSoft\Rosmurta\Executables\Modules\Nabu.IO.Formats.dll', Symbols loaded.
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'Rosmurta.Extensibility.DefaultUI', Symbols loaded.
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'Rosmurta.Extensibility', Symbols loaded.
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\PresentationFramework\v4.0_4.0.0.0__31bf3856ad364e35\PresentationFramework.dll'
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_64\PresentationCore\v4.0_4.0.0.0__31bf3856ad364e35\PresentationCore.dll'
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\WindowsBase\v4.0_4.0.0.0__31bf3856ad364e35\WindowsBase.dll'
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xaml\v4.0_4.0.0.0__b77a5c561934e089\System.Xaml.dll'
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll'
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll'
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll'
A first chance exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll
A first chance exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\UIAutomationTypes\v4.0_4.0.0.0__31bf3856ad364e35\UIAutomationTypes.dll'
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\PresentationFramework.Aero\v4.0_4.0.0.0__31bf3856ad364e35\PresentationFramework.Aero.dll'

<-- Открывается окно -->
<-- Кликаю на пукт меню File -->

'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\UIAutomationProvider\v4.0_4.0.0.0__31bf3856ad364e35\UIAutomationProvider.dll'
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Accessibility\v4.0_4.0.0.0__b03f5f7f11d50a3a\Accessibility.dll'

<-- Открывается меню -->

The thread '<No Name>' (0xafc) has exited with code 0 (0x0).
The thread '<No Name>' (0x438) has exited with code 0 (0x0).
The thread '<No Name>' (0xb34) has exited with code 0 (0x0).
The program '[2412] Rosmurta.Core.exe: Program Trace' has exited with code 0 (0x0).
The program '[2412] Rosmurta.Core.exe: Managed (v4.0.30319)' has exited with code 0 (0x0).

  Debug Output WinForms версии
<-- Запускаю приложение -->

'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'D:\Projects\TrifleSoft\Rosmurta\Executables\Modules\Rosmurta.Core.exe', Symbols loaded.
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'D:\Projects\TrifleSoft\Rosmurta\Executables\Modules\Nabu.Collections.dll', Symbols loaded.
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll'
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'D:\Projects\TrifleSoft\Rosmurta\Executables\Modules\Nabu.PlugIn.dll', Symbols loaded.
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'D:\Projects\TrifleSoft\Rosmurta\Executables\Modules\Nabu.dll', Symbols loaded.
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'D:\Projects\TrifleSoft\Rosmurta\Executables\Modules\Nabu.IO.dll', Symbols loaded.
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll'
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'D:\Projects\TrifleSoft\Rosmurta\Executables\Modules\Nabu.Platform.dll', Symbols loaded.
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll'
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'D:\Projects\TrifleSoft\Rosmurta\Executables\Modules\Nabu.IO.Formats.dll', Symbols loaded.
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'Rosmurta.Extensibility.DefaultUI', Symbols loaded.
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'Rosmurta.Extensibility', Symbols loaded.
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\PresentationFramework\v4.0_4.0.0.0__31bf3856ad364e35\PresentationFramework.dll'
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_64\PresentationCore\v4.0_4.0.0.0__31bf3856ad364e35\PresentationCore.dll'
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\WindowsBase\v4.0_4.0.0.0__31bf3856ad364e35\WindowsBase.dll'
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xaml\v4.0_4.0.0.0__b77a5c561934e089\System.Xaml.dll'
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll'
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll'
'Rosmurta.Core.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Accessibility\v4.0_4.0.0.0__b03f5f7f11d50a3a\Accessibility.dll'

<-- Открывается окно -->

The thread '<No Name>' (0x8cc) has exited with code 0 (0x0).
The thread '<No Name>' (0x11e8) has exited with code 0 (0x0).
The thread '<No Name>' (0xe18) has exited with code 0 (0x0).
The program '[404] Rosmurta.Core.exe: Program Trace' has exited with code 0 (0x0).
The program '[404] Rosmurta.Core.exe: Managed (v4.0.30319)' has exited with code 0 (0x0).
A journey of a thousand miles must begin with a single step © Lau Tsu
wpf appdomain
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.