Скопируйте файл по сетевому пути, не перенося его на мою машину - PullRequest
1 голос
/ 15 сентября 2010

Если мой клиент .NET использует System.IO.File.Copy для копирования файла из \ server1 \ share1 \ file1.txt в \ sever1 \ share2 \ file2.txt, данные файла считываются клиенту, а затем записывается обратно на сервер.

Есть ли простой способ немного ускорить процесс, поместив процесс на сетевой машине, которая действительно выполняет копирование?

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

Ответы [ 3 ]

3 голосов
/ 15 сентября 2010

Это звучит как работа для telnet или ssh, но это может быть проблематично при настройке.Я рекомендую вам взглянуть на PsExec от Microsoft, который позволяет запускать программы на удаленном компьютере.Вы можете просто использовать программу copy, находящуюся в system32 через PsExec.

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

0 голосов
/ 16 сентября 2010

FYI CopyFileEx уже делает это, если ваш клиент и сервер Vista и более поздние версии.Поэтому не стоит дублировать любое из этих усилий в этом случае.

-scott

0 голосов
/ 15 сентября 2010

Почти наверняка.Я могу придумать пару основных способов сделать это:

  1. Создать простое консольное приложение, которое берет исходные и целевые пути / имена файлов и выполняет File.Copy ().Поместите его на удаленный компьютер в известном месте.Затем вызовите процесс на удаленной машине, используя PsExec.Ваше клиентское приложение должно быть запущено с полным доверием, чтобы программно вызывать процесс, а пользователь, запускающий приложение, должен иметь разрешение на запуск программ на удаленном сервере.

  2. Создание простой сетиметод, который снова берет источник и назначение и выполняет копирование.Это требует настройки IIS на сетевом сервере с необходимыми разрешениями для доступа к файлам вне «песочницы» IIS.Однако для этого требуется меньше разрешений клиентского кода.

...