在工作中,我们使用 Windows Server 2008 R2 VM 作为构建服务器。在任何项目的构建过程结束时,我们都会将打包的部署文件复制到服务器上将要部署它们的文件夹中。(这是通过服务帐户的批处理命令完成的。)
对于我们部署到 Windows Server 2008 R2 VM 的大多数项目来说,这一步进展顺利。但对于一个部署到位于我们网络上不同域中的 Windows Server 2003 R2 VM,.zip 文件返回“访问被拒绝”并且无法复制,但所有其他文件均可正确复制。
- 我们的系统管理员说他们没有通过组策略或其他方式阻止这种情况。
- 如果我以自己的身份登录构建服务器并在命令窗口中运行复制,我也无法复制 .zip 文件,所以这不仅仅是服务帐户的权限问题。
- 如果我登录到 2003 服务器,然后使用命令窗口从构建服务器复制到 2003 服务器,它就可以工作,无论我以我自己的身份运行还是以我们的服务帐户的身份运行。
- 只有 .zip 文件会导致“拒绝访问”问题。即使是 (假的) .exe 文件也可以正确复制。
- 我们所有其他项目都有.zip文件,并且它们正确地复制到他们的2008 R2服务器。
有什么办法可以让 Windows Server 2003 R2 VM 接受从我们的构建服务器复制的 .zip 文件吗?
编辑:再进行一些测试……
- 如果我创建一个空文本文件并将其更改为 .zip,它可以正确复制。
- 如果我从另一个项目复制文件(包括 .zip 文件),.zip 文件会显示“访问被拒绝”。
- 我注意到服务帐户无权访问我们构建产品所在的主目录。因此我授予它对该文件夹的完全控制权。其他一切都正常,但是当我这样做时,.zip 文件显示“访问被拒绝”。
答案1
这就是我们今天想到的解决方案。
- 在非构建服务器(2003 R2 服务器)上运行 Internet Explorer。
- 工具 > 选项
- “安全”选项卡
- 强调本地内联网并点击站点。
- 单击“高级”。
- 取消选中“需要服务器验证(https:)”框。
- 将我们的服务器添加到站点列表中,格式如下:
file://ourservername.ourdomainname.org
。 - 关闭并保存所有对话框。
这解决了 .zip 文件问题。完成此操作后,我们再次运行构建,并且成功,包括复制 .zip 文件的步骤。
据我们所知,其他域上的服务器没有识别我们的构建服务器(及其域)是同一本地网络的一部分。