XCOPY на удаленный сервер - PullRequest
       14

XCOPY на удаленный сервер

2 голосов
/ 26 ноября 2009

Чтобы улучшить процесс развертывания / сборки моего приложения ASP.NET, я хотел бы сделать .bat, что

  • строит текущее решение в режиме релиза
  • xcopy файлы на удаленный сервер

Создать сборку релиза с помощью командной строки очень просто.

Но как я могу скопировать файлы на удаленный сервер?

Я думаю, мне нужно сопоставить удаленный пункт назначения с сетевым диском (?). Однако я не смог подключиться к удаленному серверу, хотя я включил общий доступ к файлам для папки на сервере. Может быть, брандмауэр блокирует запрос? Какой порт я должен открыть? Или есть другое решение?

EDIT

Спасибо за ответы на все вопросы, но мне, вероятно, нужно пошаговое руководство по настройке общего доступа к папкам на сервере. Я открыл доступ к папке, открыл порт 445, чтобы я мог подключиться к серверу, но все же не могу подключиться с локального компьютера к серверу, чтобы сопоставить сетевой путь с системным диском.

Ответы [ 8 ]

3 голосов
/ 26 ноября 2009

Возможно, стоит переместить файлы с помощью XCOPY по пути UNC

\\ компьютер \ папка

Это потребует от вас доступа к папке с исходного сервера. Убедитесь, что папка открыта для общего доступа и предоставлены соответствующие разрешения на чтение / запись.

3 голосов
/ 26 ноября 2009

Поскольку вы развертываете сайт ASP.Net, я предполагаю, что вы находитесь в среде Windows (не умный? :)).
ТАК ! Забудьте о .bat и выберите POWERSHELL !

Во всяком случае, это не точка вашего вопроса ... Для копирования в удаленную папку у вас должны быть права на это на компьютере Remote .

Проверьте, есть ли у вас одна и та же учетная запись на локальном и удаленном компьютерах. Например, если вы вошли на локальный компьютер в домене «Работа» с именем входа «Pipo», вы должны дать права этой учетной записи для записи в вашу специальную папку на удаленном компьютере.

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

Вот пошаговое руководство:

http://support.microsoft.com/kb/301281

1 голос
/ 26 ноября 2009

Вы можете использовать любой UNC-путь: \\machine\sharedFolder. Если вы не хотите настраивать общую папку, вы можете ссылаться на любой из дисков на машине, используя знак $: \\machine\c$\program files\etc. Если ваши машины находятся в Active Directory или если у вас есть локальный пользователь на целевой машине с тем же именем пользователя и паролем, Windows без проблем справится с аутентификацией.

1 голос
/ 26 ноября 2009

Если сервер находится в вашей локальной сети, я бы предложил использовать robocopy вместо xcopy - он имеет много других полезных опций и возможность повторять ошибки.Он отлично справляется с именами UNC (как мне кажется, xcopy тоже).Я думаю, что это доступно на более новых клиентах Windows - если это не на вашем компьютере Google для него - это доступно в различных загрузках комплекта ресурсов (я не знаю детали того, если / когда Microsoft начала включать его в дистрибутив ОС, потому что яон был в моем утилите очень долго).

Если сервер не локальный, вы можете написать FTP-клиент командной строки для выполнения передачи.Если вам нужна дополнительная гибкость или безопасность, есть много других вариантов передачи файлов, включая WinSCP .

Конечно, в любом случае (локальный или удаленный сервер), разрешения сервера и ваша аутентификация должныбыть настроенным должным образом, чтобы иметь возможность работать.

0 голосов
/ 09 ноября 2017

после поиска стольких ответов вот решение

"xcopy D:\\folder\\container \\\\servername\\folder\\container\\ \/E \/H \/Y"
0 голосов
/ 26 ноября 2009

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

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

0 голосов
/ 26 ноября 2009

Я думаю, что вы хотите:

XCOPY c:\myproject\build\*.* \\server\\build\ /S /E
0 голосов
/ 26 ноября 2009

Вы пытались развязать это?

http://www.eworldui.net/unleashit/

Может перемещать файлы между сетями, запускать файлы предварительной сборки bat, маскирование файлов и т. Д.

Раньше я использовал его в проектах .net 1.1.

...