为了改善我的 ASP.NET 应用程序的部署 / 构建过程,我想做一个.bat
在发布模式下构建当前解决方案
xcopy
将文件发送到远程服务器
通过命令行创建发布版本很容易。
但是如何将文件 xcopy 到远程服务器?
我想我必须将远程目标映射到网络驱动器 (?)。但是我无法连接到远程服务器,尽管我已经为服务器上的文件夹启用了文件共享。也许防火墙正在阻止请求?我应该打开哪个端口?还是有另一种解决方案?
EDIT感谢到目前为止的所有答案,但我可能需要一步一步的指导如何设置服务器上的文件夹共享。我共享了文件夹,我打开了端口 445,以便我可以连接到服务器,但仍然无法从本地计算机连接到服务器,以便将网络路径映射到系统驱动器。
由于您正在部署 ASP.Net 站点,因此我假设您处于 Windows 环境中(不是 smart?:))。
所以!忘记.bat 并转到POWERSHELL!
无论如何,这不是你的问题的点...要复制到远程文件夹,您应该有权在远程计算机上执行此操作。
检查您在本地计算机和远程计算机上是否具有相同的帐户。例如,如果您使用登录名“Pipo”登录到“Work”域中的本地计算机,则必须授予此帐户写入远程计算机上特殊文件夹的权限。
您可以通过右键单击文件夹,安全选项,然后选择正确的身份来实现。
这里是一步一步的指南:
http://support.microsoft.com/kb/301281通过 UNC 路径使用 XCOPY 移动文件可能是值得的
\\ machine\ 文件夹
这将要求您从原始服务器访问文件夹。请检查文件夹是否已共享,以及是否已授予相关的读 / 写权限。
如果服务器在您的本地网络上,我建议使用robocopy
而不是xcopy
-它具有更多有用的选项和重试错误的功能。它可以很好地处理 UNC 名称(我相信xcopy
也可以)。我认为它可以在较新的 Windows 客户端上使用-如果它不在您的计算机上,则可以在很长时间内使用 Google for it-
如果服务器不是本地的,您可以编写命令行 FTP 客户端脚本来执行传输。如果您需要额外的灵活性或安全性,还有许多其他文件传输选项,包括WinSCP。
当然,在任何一种情况下(本地或远程服务器),服务器的权限和您的身份验证需要正确设置,以便有机会工作。
您可以使用任何 UNC 路径:\\machine\sharedFolder
。如果您不想设置共享文件夹,则可以使用 $符号:\\machine\c$\program files\etc
引用计算机上的任何驱动器。如果您的计算机位于 Active Directory 中,或者如果目标计算机上有一个具有相同用户名和密码的本地用户,Windows 将无缝处理身份验证。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(25条)