Приложение C # .NET работает медленнее, когда исполняемый файл находится в сети - PullRequest
3 голосов
/ 31 марта 2010

Приложение C # .NET работает намного медленнее, когда исполняемый файл находится в сети.

И я говорю обо всем, даже графический дисплей медленнее. Например: если форма уже загружена, если я отсоединяю сетевой кабель, свертываю и увеличиваю окно до минимума, перерисовывание самого себя занимает очень много времени (независимо от того, подключен кабель или нет).

Я использую фреймворк .NET 3.5 SP1.

Есть идеи о причине? * +1007 *

Моя гипотеза пока:

  • Мне не хватает некоторых опций при создании приложения?
  • мой корпоративный антивирус проверяет больше вещей, потому что exe находится в сети
  • кеш Windows XP SP3 не работает так же, когда исполняемый файл находится в сети
  • сервер - это сервер Novell: может, это что-то меняет?

Спасибо за вашу помощь!

Leo

Ответы [ 2 ]

4 голосов
/ 31 марта 2010

Возможно, потому что CLR должен пройти через сеть, чтобы прочитать какие-либо новые сборки и т. Д.?

Вам, вероятно, повезет больше, если вы воспользуетесь установщиком в один клик, когда приложение установлено на локальном компьютере, но обновления можно загрузить с централизованного сервера.

2 голосов
/ 31 марта 2010

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

Рассматривали ли вы развертывание (все еще в общей сетевой папке) как ClickOnce (.application)? Затем он должен автоматически копироваться локально и работать с лучшей моделью доверия (без влияния на производительность сети).

...