c # приложение, работающее на машине разработки, не работает на машине без разработки - PullRequest
2 голосов
/ 04 июня 2011

эта проблема меня озадачила.

Я пишу приложение, которое должно принимать информацию из формы, передавать ее фоновому работнику, который затем а) ​​записывает информацию в локальный XML-файл и б) вставляет информацию в удаленную базу данных MySQL.

На моей машине для разработки она работает безупречно. Удаленная база данных обновляется, XML-файл создается при необходимости и обновляется, если он уже существует. Это работает.

Даже если я выхожу из среды разработки и запускаю сборку релиза независимо от изолированной программной среды IDE, код работает.

Но, если я поместил его на другой компьютер, код не работает, и я не понимаю, почему.

В настоящее время я использую Visual Studio 2010 Professional на 32-битной Windows 7 Ultimate.

В данный момент я обнаружил, что приложение останавливается в довольно специфической точке, которая, по-видимому, именно там, где фоновый работник начинает делать такие вещи, как доступ к файловой системе или доступ к удаленной базе данных.

Проект состоит из одного исполняемого файла и библиотеки DLL, в которой есть собственный элемент управления, который я разработал. Пользовательский элемент управления работает нормально, так как он показывает то, что я хочу, и возвращает значения, которые я запрашиваю, когда я этого хочу, так что может показаться, что это не вина.

Сначала я думал, что могу посмотреть на проблему с разрешениями, но запуск приложения от имени администратора дает мне тот же ответ.

Я писал с использованием версии 4 .NET Framework, однако я только снизил его до версии 3.5 в надежде, что это может помочь. Обе машины, не предназначенные для разработки, которые я пробовал, были обновлены - или были обновлены мной - до попытки запустить приложение.

Я честно здесь сбит с толку. Любые предложения будут приветствоваться.

Alan

Ответы [ 3 ]

4 голосов
/ 04 июня 2011

Если ваш код дает сбой, это, скорее всего, означает, что есть какое-то необработанное исключение.Что вы должны сделать, это записать все необработанные исключения (и, вероятно, некоторые из перехваченных тоже) в файл, возможно, используя что-то вроде log4net.

Я не думаю, что мы можем помочь вам в этом.

1 голос
/ 30 сентября 2014

Посмотрите на просмотрщик событий вашей операционной системы. Администрирование> Просмотр событий> Журнал Windows> Приложение.

1 голос
/ 04 июня 2011

Я написал утилиту для ведения журнала в реальном времени под названием Donsole для диагностики приложения в таких условиях. На рабочей станции разработчика очень легко диагностировать с помощью многофункционального отладчика VS. Утилита приложение. помогает разработчикам именно в таких ситуациях, когда они не имеют ни малейшего представления о том, что происходит внутри. Я рекомендую вам скачать последнюю версию и попробовать сами. Объяснение того, как использовать эту утилиту и как она работает, выходит за рамки этого ответа, поэтому я перешлю вас на страницу codeplex проекта.

http://donsole.codeplex.com/

Вот так это выглядит.

enter image description here

...