VB 经典 Windows 服务说 UNC 文件不存在,在第二台服务器上工作
VB Classic Windows Service says UNC file does not exist, works on 2nd server
我在两个不同的 2008 服务器上有一个 VB 经典 Windows 服务,它们访问 2012 服务器上的同一个文件夹。两台 2008 服务器配置相同(可能有些不同)运行 相同的应用程序软件。一个应用程序可以很好地访问 UNC 文件,另一台服务器上的同一个应用程序说该文件不存在并且使用 objFSO.Exists(UNCfilename) 总是 returns false。我看不出服务器有何不同,而且已经找遍了所有地方。这里有一些更多的背景:
- 两种服务运行作为管理员
- 运行 服务在 VB 作为管理员,一个失败一个没有
- 2012 年的 UNC 文件夹与所有人共享,完全控制
- 同一子网上的所有服务器
- 所有服务器运行工作组不是域
- 关闭所有防火墙
- 我可以在两台服务器上使用 Windows Explorer 查看 UNC 文件夹和文件
- C# 服务 运行 作为管理员在两台服务器上看到文件(不,将 VB 服务转换为 C# 不是一个选项)
- Dir(UNCfilename) 在一台服务器上不起作用,在另一台服务器上起作用
两台 2008 服务器肯定有区别,但我不知道可能是什么。我错过了什么?
好吧,我找到了解决方案...不太明白为什么这是我找到的唯一修复方法,但毕竟这么久了,我不太在意!
DaveInCaz 关于映射驱动器的评论引导我走向了正确的方向。我们没有,但我想知道如果我们有会发生什么。我在程序中添加了以下代码:
remoteUser = "Administrator"
remoteServerName = "CADERed5" 'The name of the 2012 server
myUNCPath = "\192.168.100.4\c\Program Files (x86)\..."
Set NetworkObject = CreateObject("WScript.Network")
NetworkObject.MapNetworkDrive "", myUNCPath, False, remoteServerName & "\" & remoteUser, remotePassword
If objFSO.FolderExists(myUNCPath) Then
...
我必须使用以服务器名称为前缀的目标 (2012) 服务器管理员的凭据。基本上,我成为了那个服务器的管理员,它允许我阅读文件。
我在两个不同的 2008 服务器上有一个 VB 经典 Windows 服务,它们访问 2012 服务器上的同一个文件夹。两台 2008 服务器配置相同(可能有些不同)运行 相同的应用程序软件。一个应用程序可以很好地访问 UNC 文件,另一台服务器上的同一个应用程序说该文件不存在并且使用 objFSO.Exists(UNCfilename) 总是 returns false。我看不出服务器有何不同,而且已经找遍了所有地方。这里有一些更多的背景:
- 两种服务运行作为管理员
- 运行 服务在 VB 作为管理员,一个失败一个没有
- 2012 年的 UNC 文件夹与所有人共享,完全控制
- 同一子网上的所有服务器
- 所有服务器运行工作组不是域
- 关闭所有防火墙
- 我可以在两台服务器上使用 Windows Explorer 查看 UNC 文件夹和文件
- C# 服务 运行 作为管理员在两台服务器上看到文件(不,将 VB 服务转换为 C# 不是一个选项)
- Dir(UNCfilename) 在一台服务器上不起作用,在另一台服务器上起作用
两台 2008 服务器肯定有区别,但我不知道可能是什么。我错过了什么?
好吧,我找到了解决方案...不太明白为什么这是我找到的唯一修复方法,但毕竟这么久了,我不太在意!
DaveInCaz 关于映射驱动器的评论引导我走向了正确的方向。我们没有,但我想知道如果我们有会发生什么。我在程序中添加了以下代码:
remoteUser = "Administrator"
remoteServerName = "CADERed5" 'The name of the 2012 server
myUNCPath = "\192.168.100.4\c\Program Files (x86)\..."
Set NetworkObject = CreateObject("WScript.Network")
NetworkObject.MapNetworkDrive "", myUNCPath, False, remoteServerName & "\" & remoteUser, remotePassword
If objFSO.FolderExists(myUNCPath) Then
...
我必须使用以服务器名称为前缀的目标 (2012) 服务器管理员的凭据。基本上,我成为了那个服务器的管理员,它允许我阅读文件。