我们正在开发一个 Web 服务,该服务必须运行与映射网络驱动器交互的第 3 方进程。因此,我们必须以编程方式从 Web 服务映射此驱动器。
我已经为另一个项目将 WNetAddConnection2 等封装在一个更好的类中,所以我把代码直接扔进去了。
我们的 Web 服务在 UltiDev Cassini(而不是 IIS)下运行,它在 System 帐户下运行。我们每次都得到错误代码:“指定的设备名称无效”。我还尝试在 web.config 文件中模拟其他用户,结果相同。
当我在普通用户帐户下从控制台程序运行我的代码时,驱动器将映射得很好。
我还尝试从 C# 运行等效的“net use”命令,结果与 WNetAddConnection 完全相同。
有谁知道为什么 Windows 服务或系统用户无法映射网络驱动器?
有谁知道解决方法?简单地在系统启动时映射驱动器将是一个解决方案,但系统/模拟用户如何访问它?
UltiDev Cassini 的链接:UltiDev
解决方案:我将 UltiDev Cassini 服务设置为在管理员下登录,一切正常。ASP .Net 模拟不得按计划工作。