2012-01-03 3 views
4

У меня есть стандартное приложение winforms, которое работает на большинстве машин. На сервере 2003 с установленной .Net 4 (полной) он не запускается.Winforms .Net Приложение не запускается

В окне просмотра событий показывает:

Event Type: Error 
Event Source: .NET Runtime 
Event Category: None 
Event ID: 1026 
Date:  4/01/2012 
Time:  10:07:37 AM 
User:  N/A 
Computer: DRACO 
Description: 
Application: start.exe 
Framework Version: v4.0.30319 

Description: The process was terminated due to an unhandled exception. 
Exception 
Info: System.TypeInitializationException 
Stack: 
    at BootStrap.Program.Main(System.String[]) 

Event Type: Error 
Event Source: .NET Runtime 4.0 Error Reporting 
Event Category: None 
Event ID: 1000 
Date:  4/01/2012 
Time:  10:07:34 AM 
User:  N/A 
Computer: DRACO 
Description: 
Faulting application start.exe, version 1.0.4386.17553, stamp 4f0384f3, faulting module  kernel32.dll, version 5.2.3790.4480, stamp 49c51f0a, debug? 0, fault address 0x0000bef7. 

Он терпит неудачу на Main() называют поэтому я не могу ловушкой ошибки. Как я могу сказать, в чем проблема?

+0

Вы пытались запустить его под отладчиком? – krolth

+0

Это на производственной машине, что я бы предпочел не устанавливать среду разработки. Я установил на другой блок 2003 года, и он прошел нормально. –

+0

@PHemans можно удаленно отлаживать производственные машины без необходимости устанавливать что-либо. Удаленные компоненты отладчика доступны для xcopy. Я думаю, что вы действительно в пробке, где вам нужно будет: 1) развернуть модифицированный двоичный код или 2) отлаживать каким-то образом на целевой машине – JaredPar

ответ

8

Исключение составляет TypeInitializationException. Это генерируется, когда генерируется исключение, выполняющее код инициализатора для типа. В основном статический конструктор или инициализация статических полей. Некоторая часть этой инициализации бросает исключение, которое приводит к ошибке TypeInitializationException

Информация об исключении сама скажет, какой тип вызывает это через свойство TypeName.

Трудно сказать наверняка, что вызывает эту проблему. Самый быстрый способ узнать - запустить процесс под отладчиком и установить его для разбиения на любое исключенное исключение. Это должно сразу привести вас к первопричине.

+0

Проблема заключалась в том, что процедура установки пропустила новую требуемую сборку. Сборка использовалась со статическим членом, поэтому приложение разбилось перед основным. –

8

Интересная часть заключается в следующем: System.TypeInitializationException

Это означает, что один из типов, используемых в основной метод не удалось инициализировать. Обычно статический constructor бросает исключение, которое улавливается инициализатором, а затем повторно забрасывается как внутреннее исключение System.TypeInitializationException. Исследуйте исключение в своем основном методе и покажите его внутреннее исключение или используйте отладчик.

+0

Как вы поймаете исключение в основном методе, если он не работает в BootStrap.Program.Main (System.String [])? –

+0

Ошибка в методе, который означает, что исключение вызывается при выполнении команды функции. Таким образом, работа над основной функцией с блоком try-catch должна работать. – Muepe

+0

Извините, не помогло. Мне придется идти по пути удаленной отладки –

Смежные вопросы