Странное исключение FileNotFoundException на производственном сервере в консольном приложении - PullRequest
1 голос
/ 28 апреля 2010

Привет, у меня есть приложение, которое отлично работает в моей среде разработчика, но выдает странные ошибки в рабочей среде, я проверил версию .net на своей машине разработчика так же, как и на производственном сервере, они оба запускают 3.5.30729.01.

Исключением, которое я получаю, является исключение System.IO.FileNotFoundException.

StackTrace:

at System.Diagnostics.FileVersionInfo.GetVersionInfo(String fileName)
at System.Configuration.ClientConfigPaths.SetNamesAndVersion(String applicationFilename, Assembly exeAssembly, Boolean isHttp)
at System.Configuration.ClientConfigPaths..ctor(String exePath, Boolean includeUserConfig)
at System.Configuration.ClientConfigPaths.GetPaths(String exePath, Boolean includeUserConfig)
at System.Configuration.ClientConfigurationHost.get_ConfigPaths()
at System.Configuration.ClientConfigurationHost.RequireCompleteInit(IInternalConfigRecord record)
at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
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.DirectoryServices.SearchResultCollection.ResultsEnumerator..ctor(SearchResultCollection results, String parentUserName, String parentPassword, AuthenticationTypes parentAuthenticationType)
at System.DirectoryServices.SearchResultCollection.GetEnumerator()
at System.DirectoryServices.DirectorySearcher.FindOne()

Вчера ошибка просто исчезла, а сегодня ошибка повторяется. Я попытался использовать рефлектор в System.DirectoryServices.DirectorySearcher.FindOne () после вызовов, и он, похоже, как-то связан с файлами конфигурации или файлами конфигурации пользователя, как вы можете видеть из трассировки стека

есть идеи относительно того, какой конфигурационный файл он пытается найти и почему он не может их найти?

Ответы [ 3 ]

2 голосов
/ 28 апреля 2010

Используйте Process Monitor (или улучшите ведение журнала), чтобы определить, какой файл не найден.

0 голосов
/ 02 марта 2017

Я столкнулся с этой проблемой. В моем случае, когда я вытащил свое релизное приложение с моего сервера сборки и запустил его на своем компьютере разработчика, я получил FileNotFoundException из цепочки вызовов, происходящих из FindOne. Я запускал эту версию с рабочего стола, к которой у олицетворенной учетной записи тоже нет полного доступа. Я переместил папку релиза на диск C, и он работал нормально. В моем случае этот код выполняется для диалога входа в систему, который допускает несколько попыток входа в систему. Это не удается в первый раз по вышеуказанной причине, но успешно в следующий раз, что кажется странным. Я могу только предположить, что FindOne в конечном итоге последует другим путем, но я точно не нашел точную проблему на данный момент. Проблема доступа имеет смысл в моем случае, поэтому я просто не буду бежать оттуда. Может быть, это скорее подсказка для других, чем решение.

0 голосов
/ 28 апреля 2010

Я бы пошел с sysinternal "FileMon".

Это приложение, которое ловит каждую попытку ввода-вывода, успешную или нет. С pacience вы увидите имя файла не найден.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...