我知道最近在这个网站上有人问过类似的问题,并且我尝试了推荐的解决方案,但仍然遇到问题。
我有一个应用程序,我想将其作为 Windows 服务在 XP(是的,不支持)机器上运行。此服务需要能够将数据存储到服务器共享(Win2003 Server)上,该共享在配置文件中指定为 UNC 路径。
我遵循了之前的建议,在两个系统上创建了匹配的本地用户,并授予服务器上的本地用户对共享的必要访问权限。
如果我以非服务模式运行我的应用程序(即以新创建的本地用户身份登录到 Xp 计算机并从命令行运行),则整个过程将正常运行,数据将按原样存储在服务器共享上。但是,当我使用新本地帐户作为登录帐户将应用程序作为服务运行后,服务器共享上就不会写入任何数据。
附加信息
- 服务器是 AD 域的一部分
- XP 计算机不属于该域
我无法弄清楚我的问题是否与 XP 机器运行服务的方式有关以及它是否允许网络访问,或者问题是否实际上出在服务器端,服务器端不接受来自服务的网络连接。
任何帮助将非常感激。
问候
安德鲁·霍尔
答案1
零。您的服务应该生成本地日志,从中应该可以清楚地了解哪些地方出了问题或在哪里可以找到问题。如果不是这样,并且您负责开发,请添加此功能。
第一的,在两个地方检查共享访问权限:
- 共享文件夹本身(不同用户可拥有不同的权限)
- NTFS 访问控制列表
您的用户(测试成功)肯定拥有这两种访问权限。那么服务用户呢?请先检查(在服务器上)。
第二,您可以暂时允许服务用户本地登录,在其下登录,并尝试访问共享。这样您就可以看到它是否正常工作。之后,您可能能够在调试模式下运行该应用程序并检查出了什么问题。
顺便问一下,配置存储在哪里?也许每个用户的配置位置都不同,或者服务用户无法访问?
答案2
在输入访问共享的凭据时,您是否输入了服务器名称,然后在用户名前输入了反斜杠以指定它是本地帐户?
例如服务器名称\用户名
服务器可能正在尝试在域上而不是本地验证帐户。