Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   C#. Программа вылетает без интернета (http://forum.oszone.net/showthread.php?t=196343)

Efsey 11-01-2011 12:18 1586010

C#. Программа вылетает без интернета
 
Здрасьте! Случилась такая вот беда. Написал программу, она работает, вроде даже как надо, но не запускается на компьютерах где нет интернета.
В win2003 вылетает как партизан-молча(try-catch не реагируют) win2008 пишет "Возникшая проблема привела...".
Сама программа должна обращаться только к локальной сети и только по нажатию кнопки.

Подскажите где-что убрать(добавить, настроить)?

MS Visual studio 2010

На машине где прога собиралась запускается без инета

LilLoco 11-01-2011 19:29 1586318

Efsey, А Вы пробовали только на Win2003 и Win2008? Не могли бы предоставить более подробную информацию об ошибке!

Efsey 11-01-2011 20:24 1586368

Программа скомпилирована в вин7, запускалась 7, 2003, 2008. На 7 (где собрана) работает без проблем с инетом и без.
На 2003 и 2008, где есть инет также работает без вылетов и ошибок.
На 2003 без инета программа мелькает в диспетчере задач, но окно не появляется, ошибок, исключений и прочего не выводит.
На 2008 также без инета выводит сообщение: "Прекращена работа приложения. Возникшая проблема привела к прекращению работы программы. Закройте эту программу".
Прога использует .net4, везде стоят последние версии и все update'ы. Разница в компах только в отсутствии инета.

LilLoco 11-01-2011 20:41 1586380

А пробовали на тех компьютерах с вин2003 и вин2008 где есть интернет и работает программа, отключить его(интернет) и запустить?а то мб это лишь совпадение?)

Efsey 11-01-2011 20:57 1586400

Пробовал, все равно работают.

Подключил один комп к инету, все равно вылетает...

Непонятно

LilLoco 11-01-2011 21:20 1586413

А другие приложения, использующие .Net 4.0 запускаются на этих компьютерах?Если да, значит проблема в самом коде!Начать нужно, если Вы говорите что это форма, с событий создания формы или загрузки!Так же,если есть, код при запуске приложения!

Efsey 11-01-2011 21:29 1586425

Весь код запускаемый при старте:
Код:

справка sprvk;
        Настройки nstrk;
        public int ид_писателя { get; set; }
        public osn()
        {
            InitializeComponent();
            CheckForIllegalCrossThreadCalls = false;
            Environment.CurrentDirectory = @"C:\updweeketalon\";
            this.стат_инфо();
        }
        public void стат_инфо() //выводит в листбоксы имя компа, номер комбинатора и писателя
        {
            try
            {
                имя_компа.Text = Environment.MachineName;
                номер_комбинатора.Text = Convert.ToString(Settings.Default.номер_комб);
                номер_пис.Text = Convert.ToString(Settings.Default.ном_пис);
                колво_писателей.Text = Convert.ToString(Settings.Default.колво_писат);
            }
            catch { MessageBox.Show("мля"); }
        }


LilLoco 11-01-2011 22:01 1586452

Этот код находится в событии Load формы? ничего странного тут нет, вряд ли ошибка тут :( Может быть все же ошибка в самом .Net???

Попробуйте закомментировать код в load формы и запустить!Форма то должна появится, если проблема не в .Net!

Delirium 12-01-2011 00:52 1586564

Efsey, а что такого использует программа, что ей нужен 4 фреймворк? Приведенный код будет работать даже на первом .Net.

Варианты решения проблемы: комментируем строки
Код:

Environment.CurrentDirectory = @"C:\updweeketalon\";
            this.стат_инфо();

Запускаем, проверяем. Если работает, раскомментим по очереди строки и в отладчике пошагово смотрим где вылетает.

P.S. XP и 7, к примеру, по разному обрабатывают ошибки, связанные с использованием NULL переменных(это я просто как пример привел).
P.P.S писать Convert.ToString(Settings.Default.ном_пис) не обязательно, короче и быстрее будет Settings.Default.ном_пис.ToString();

Efsey 12-01-2011 07:29 1586635

Стало запускаться после комментирования
Код:

Environment.CurrentDirectory = @"C:\updweeketalon\";
Только все равно непонятно, почему на одном запускалось, а на другом нет.

P.S. папка "C:\updweeketalon\" есть на каждом компе. Большая часть действий завязана на этой папке.

Delirium 12-01-2011 08:36 1586658

Убери последний слеш в пути к папке. Ты же указываешь директорию, а не содержимое директории


Время: 06:04.

Время: 06:04.
© OSzone.net 2001-