У меня есть приложение .NET 2.0, в котором нет ничего особенного.До вчерашнего дня он работал на на каждом ПК, на который я устанавливал или копировал его, независимо от того, был ли установлен 2.0, 3.0, 3.5 или 3.5 SP1, независимо от того, был ли это Win2000, XP или даже Win7 (всего 100+машины).
Вчера я выполнил свою обычную процедуру установки и хотел запустить ее один раз, чтобы проверить, все ли работает ... а это не так.Программа сильно упала, оставив меня с неинформативным "Вы хотите сообщить об этой ошибке?"Диалог.Проблема является исключением в подпрограмме Main(String[] args)
моего приложения.
В программе просмотра событий отображается следующая запись:
Event Type: ErrorEvent
Source: .NET Runtime 2.0 Error Reporting
Event Category: None
Event ID: 5000
Date: 05/05/2010
Time: 16:09:09
User: N/A
Computer: myClientPC
Description:
EventType clr20r3, P1 apomenu.exe, P2 1.4.90.53, P3 4bdedea4,
P4 system.configuration, P5 2.0.0.0, P6 4889de74, P7 1a6, P8 136,
P9 ioibmurhynrxkw0zxkyrvfn0boyyufow, P10 NIL.
Ну ... отличная информация.После долгих поисков я наконец смог получить дополнительную информацию об этом исключении (добавив обработчик для UnhandledExceptions
непосредственно в My.MyApplication.New(), Application.Designer.vb
):
System.Configuration.ConfigurationErrorsException
Configuration system failed to initialize
at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
at System.Configuration.ClientConfigurationSystem.PrepareClientConfigSystem(String sectionName)
at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName)
at System.Configuration.ConfigurationManager.GetSection(String sectionName)
at System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName)
at System.Net.Configuration.SettingsSectionInternal.get_Section()
at System.Net.Sockets.Socket.InitializeSockets()
at System.Net.Sockets.Socket.get_SupportsIPv4()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.get_HostName()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.RegisterChannel(Boolean SecureChannel)
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
at MyAppNameHere.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:Line 81.
И в этот момент я застрял...У меня нет идей.Я не использую какую-либо систему конфигурации из фреймворка (нет ссылки на System.Configuration, и никогда не было сгенерированного или распространенного MyAppnameHere.exe.config, и я не видел эту ошибку раньше).Я также нашел отчет об ошибке в Microsoft (Google Cache) об этой ошибке (хотя в другом контексте).Но, как кажется, они даже не будут смотреть на это.
Каждая помощь очень ценится!
Редактировать: Я использую Visual Studio 2008 Prof ..Сбой происходит в Release- и Debug-Build на клиентском компьютере.Боюсь, что отладка приложения непосредственно на этом компьютере исключена, 300+ миль, и у них есть только два компьютера для работы.
Edit2: Другие приложения .NET работают нормально.
Edit3: После того, как Андрей указал на это, я также посмотрел на Внутреннее исключение (я всегда забываю, что эта вещь существует):
System.Configuration.ConfigurationErrorsException
Unknown configraution directive "system.serviceModel". (c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\machine.config line 145)
at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors)
at System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors()
at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
Я удалилэтот раздел и все теперь работает, как и ожидалось ... но теперь меня преследует один вопрос: почему работали другие приложения?