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