2009-02-16 2 views
0

У меня есть .Net-программа, которая как одна из ее функций принимает файл из указанного пользователем каталога и помещает его в другой специальный каталог, указанный через UNC (который может или не может быть локальным). Я не открываю ни один из этих файлов в этой части кода.Программа завершает работу с файлом Переместить

Есть эта странная ошибка, с которой я сталкиваюсь, когда на Windows Server 2003 с пакетом обновления 2 (SP2) эта программа случайным образом выполняет жесткое прерывание при перемещении в локальную папку. Он просто заканчивается. Никаких исключений, никаких протоколов и, похоже, не происходит в какой-либо конкретный момент. Я не могу воспроизвести эту проблему на моей машине разработки, и она появляется только во время копирования определенного типа файла размером около мегабайта. Есть другие форматы, скопированные в разные каталоги, используя очень похожий код, все меньше, и они работают нормально.

Почему программа Windows .Net делает это так? Что я могу сделать, чтобы исправить это?

+0

Значит, в журнале событий ничего нет? Хммм. Аппаратная проблема ?? – jdigital

+0

Локальная папка назначения указывается с помощью UNC? Может ли он быть указан с использованием обычного пути, и, следовательно, у него такая же проблема? Какое программное обеспечение Virtual Machine используется для размещения виртуальной машины? –

ответ

0

Я бы предположил, что сбой сети , так как вы упомянули «указанный через UNC (который может быть или не быть локальным)».

Я бы изменил программу для добавления журнала для операции копирования файла, если это опция.

Вы пытались сделать «netstat», пока он пытается скопировать? Это может сказать вам, возможно ли заблокирован порт брандмауэра.

+0

Сбой сети - это возможность, хотя папка должна быть локальной. Будет ли это разрешение папки, если оно работает в 99% случаев? – Merus

+0

Правильно, если он работает 99% времени, я бы не предполагал, что права на папку будут причиной. Добавьте несколько журналов для диагностики сетевых проблем. –

0

.NET runtime wil fail fast и отключить приложение без дополнительного уведомления о переполнении стека. Однако это должно сгенерировать запись в журнале событий сервера. Используете ли вы какие-либо рекурсии или распределения больших массивов и т. Д. В вашем коде, что может привести к переполнению стека?

0

Я бы поменял одну строчку. Что произойдет, если он просто сохранит файл локально? Неужели все еще не работает на этом изображении? Можете ли вы скопировать и вставить эту часть кода в свой вопрос?

0

Вы проверили журналы событий? Есть ли в нем антивирусная программа? это получение DAP'd?

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