Приложение C # зависает на Vista / 7, а не на сервере XP / 2003 - PullRequest
1 голос
/ 03 июля 2010

Я написал приложение на C #, которое хорошо работает на моей машине для разработки xp. Когда мой клиент запускает его на другом ПК, он зависает как на Vista, так и на 7 машинах. Я хотел бы знать, есть ли какие-либо проблемы с запуском приложений dotnet на vista / 7. Я скомпилировал приложение для фреймворка 2.0 и 3.5, но это не помогло. Лог-файл тоже не помогает. Есть ли способ узнать, где приложение зависает (конечно, у клиента нет VS для подключения к приложению)? Заранее благодарю за любую помощь.

Пьер.

Ответы [ 4 ]

2 голосов
/ 03 июля 2010

Как правило, приложение .NET должно работать одинаково в любой версии Windows с установленной платформой .NET. Наиболее распространенная проблема, которая возникает, связана с новой политикой контроля учетных записей в Vista и 7, которая не позволяет приложениям получать доступ к областям, требующим повышенных привилегий (которые в противном случае работали бы нормально под учетной записью администратора в XP).

Например, если ваше приложение пытается записать параметры конфигурации в папку Program Files (что очень плохо, кстати), или использует жестко закодированные пути к диску или реестру вместо переменных среды, предоставляемых в классах .NET , это может дать сбой под Vista.

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

Проверьте эту ссылку для получения дополнительной информации: Обеспечение осведомленности приложений UAC .

Как подсказал redsquare , лучший способ протестировать ваше приложение в различных системах Windows - запустить их на нескольких виртуальных машинах ( MS Virtual PC или VMWare Player , они оба бесплатны для скачивания).

0 голосов
/ 04 июля 2010

csharp приложения должны работать на Vista / Win7.Это их дом:)

Ваша проблема не в ОС.это ваше приложение.Скорее всего, приложение ищет файл, папку, что-то на стороне клиента и его зависание.это мой опыт.

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

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

0 голосов
/ 04 июля 2010

Попросите клиента захватить дамп процесса с помощью диспетчера задач Windows,

  1. В диспетчере задач найдите зависающий процесс.
  2. Щелкните правой кнопкой мыши и запишите дамп памяти.

Затем вы можете выполнить анализ дампа, чтобы понять, почему он зависает.

Если вы не знакомы с анализом дампов, найдите кого-нибудь, кто может помочь или открыть службу поддержки через http://support.microsoft.com

0 голосов
/ 03 июля 2010

Вы не предоставляете много информации, чтобы мы могли вам многое помочь.

Я бы начал с попытки воссоздать проблему локально на виртуальной машине (одна из них доступна здесь ), а затем профилировать приложение с помощью memprofiler .

...