从 Windows 服务访问 NFS 共享
Posted
技术标签:
【中文标题】从 Windows 服务访问 NFS 共享【英文标题】:Accessing an NFS share from a Windows service 【发布时间】:2013-12-18 15:05:08 【问题描述】:我的 Windows 服务无法访问 UNIX
框上的 NFS share
。我无法通过 UNC 路径访问共享,所以我必须安装它。
我有一个控制台应用程序可以看到驱动器并且运行良好,但是当我部署我的 Windows 服务时,它看不到驱动器。
我以本地用户和管理员身份安装了驱动器。
我已尝试使用 "Process.Start(mBatchFilePath);"
从我的应用程序安装驱动器,但这也不起作用。
我以本地用户身份运行(设置为管理员)。
尝试使用符号链接
打算尝试建立一个 FTP 来传输文件
有人对我如何完成这项工作有任何建议吗?
已解决:我使用 SSH.Net 并通过 SFTP 服务器传输文件
【问题讨论】:
与桌面交互是否打勾? 澄清一下,您是在管理员帐户下安装了服务运行吗?这样它真的应该能够看到管理员的驱动器吗? @Mike Miller - 与桌面交互已勾选。 @criticalfix - 抱歉,这令人困惑。我实际上只是安装了该服务。我没有将它设置为以管理员身份运行,因为我们的 IT 人员认为这不是一个好主意。我会从我的问题中删除那部分 【参考方案1】:我不认为将驱动器映射到符号链接是一个真正的解决方案。问题是,该服务在某个用户帐户下运行,因此它使用该帐户的权限访问所有资源。当然你的 IT 管理员是对的,让服务在本地管理员帐户下运行并不是一个好主意。
您应该创建一个允许访问共享文件夹的新用户帐户。然后设置它在此帐户下运行的服务,该服务应该能够访问网络共享。但请记住,映射到驱动器号的网络共享仅映射给当前用户。所以服务(在不同的用户帐户下运行)根本没有任何带有这个字母的驱动器,它没有映射到它的帐户下。 因此,在您的服务中,您应该始终使用完整的 UNC 路径访问共享,而不是使用映射的驱动器号。
【讨论】:
我同意。符号链接毕竟不是解决方案。我向 IT 部门提到我想使用 UNC 路径访问它,但他们说这无法在 Windows 和我们的 Solaris 机器之间完成。我对 UNIX 没有任何经验,所以我必须相信他的话。【参考方案2】:由于我们是从 Windows 机器连接到 Solaris 服务器,因此我需要使用 SFTP 将文件发送到服务器。
我考虑过某种文件夹同步,但这不是我想要的路线。
我使用了 SSH.Net 库。
【讨论】:
以上是关于从 Windows 服务访问 NFS 共享的主要内容,如果未能解决你的问题,请参考以下文章