XCOPY на удаленный сервер
-
05-07-2019 - |
Вопрос
Чтобы улучшить процесс развертывания / сборки моего приложения ASP.NET я хотел бы создать .bat
это
- создает текущее решение в режиме выпуска
xcopy
файлы на удаленный сервер
Создать сборку релиза с помощью командной строки несложно.
Но как я могу скопировать файлы на удаленный сервер?
Я думаю, мне нужно сопоставить удаленное место назначения с сетевым диском (?).Однако мне не удалось подключиться к удаленному серверу, хотя я включил общий доступ к файлам для папки на сервере.Может быть, брандмауэр блокирует запрос?Какой порт я должен открыть?Или есть другое решение?
Редактировать
Спасибо за все ответы на данный момент, но мне, вероятно, понадобится пошаговое руководство о том, как настроить общий доступ к папкам на сервере.Я предоставил общий доступ к папке, я открыл порт 445, чтобы я мог подключиться к серверу, но все равно я не могу подключиться со своего локального компьютера к серверу, чтобы сопоставить сетевой путь с системным диском.
Решение
Поскольку вы развертываете ASP.Сетевой сайт, я предполагаю, что вы находитесь в среде Windows (разве это не разумно?:)).
ИТАК !Забудьте об этом .бейте и идите за POWERSHELL !
В любом случае, это не суть вашего вопроса...Чтобы скопировать в удаленную папку, у вас должны быть права на это на Удаленный компьютер.
Проверьте, есть ли у вас одна и та же учетная запись на вашем локальном компьютере и на удаленном.Например, если вы вошли в систему на своем локальном компьютере в домене "Work" под логином "Pipo", вы должны предоставить права этой учетной записи на запись в вашу специальную папку на удаленном компьютере.
Вы можете добиться этого, щелкнув правой кнопкой мыши по папке, параметрам безопасности, а затем выбрав правильный идентификатор.
Вот пошаговое руководство:
Другие советы
Возможно, стоит переместить файлы с помощью XCOPY по пути UNC
\\машина\папка
Для этого потребуется, чтобы у вас был доступ к папке с исходного сервера.Убедитесь, что к папке предоставлен общий доступ и что были предоставлены соответствующие разрешения на чтение / запись.
Если сервер находится в вашей локальной сети, я бы предложил использовать robocopy
вместо того , чтобы xcopy
- в нем есть еще много полезных опций и возможность повторить попытку при ошибках.Он просто отлично обрабатывает UNC-имена (как я полагаю xcopy
тоже делает).Я думаю, что это доступно на более новых клиентах Windows - если этого нет на вашем компьютере, Погуглите для этого - это доступно в различных загрузках resource kit (я не знаю подробностей о том, начала ли / когда Microsoft включать это в дистрибутив ОС, потому что у меня это было в моем utility kit уже очень, очень давно).
Если сервер не является локальным, вы можете создать скрипт FTP-клиента командной строки для выполнения передачи.Если вам нужна дополнительная гибкость или безопасность, существует множество других вариантов передачи файлов, в том числе WinSCP ( ВинСКП ).
Конечно, в любом случае (локальный или удаленный сервер) разрешения сервера и ваша аутентификация должны быть настроены должным образом, чтобы это могло сработать.
Вы можете использовать любой UNC-путь: \\machine\sharedFolder
.Если вы не хотите настраивать общую папку, вы можете ссылаться на любой из дисков на компьютере, используя знак $: \\machine\c$\program files\etc
.Если ваши компьютеры находятся в Active Directory или если у вас есть локальный пользователь на целевом компьютере с тем же именем пользователя И паролем, Windows без проблем выполнит проверку подлинности.
Вы пробовали высвободить его?
http://www.eworldui.net/unleashit/
Он может перемещать файлы по сетям, запускать файлы предварительной сборки bat, маскировать файлы и т.д...
Я использовал его раньше в проектах .net 1.1.
Я думаю, ты хочешь:
XCOPY c:\myproject\build\*.* \\server\\build\ /S /E
Все вышеперечисленное кажется отличным ответом - вы могли бы рассмотреть возможность использования скрипта msbuild и задач сообщества msbuild для выполнения всего этого - они могут заархивировать вашу сборку и отправить ее по ftp на удаленный сервер.
Я только что настроил это для одного из наших сайтов, мне потребовалось пару часов, чтобы разобраться с этим, но он создает сайт в версии, обновляет конфигурационные файлы для производства, удаляет ненужные файлы, а затем выполняет загрузку.
после поиска стольких ответов вот решение
"xcopy D:\\folder\\container \\\\servername\\folder\\container\\ \/E \/H \/Y"