.net WNetAddConnection2无法从Windows 2008 R2运行

.net WNetAddConnection2无法从Windows 2008 R2运行,.net,asp.net,.net,Asp.net,我正在尝试使用WNetAddConnection2通过我的ASP.NET web应用程序连接到网络位置。当我使用VS2010附带的ASP.NET开发服务器进行调试时,每件事情都能完美地工作。但是,当我在Windows Server 2008 R2中部署代码时,它不会放置该文件,并引发Win32异常,错误代码为0X80004005。应用程序池标识是网络服务,我使用的是域用户帐户 我已经使用该命令检查了连接和用户名密码的有效性,它在服务器runas/netonly/user:DOMAIN\user“

我正在尝试使用WNetAddConnection2通过我的ASP.NET web应用程序连接到网络位置。当我使用VS2010附带的ASP.NET开发服务器进行调试时,每件事情都能完美地工作。但是,当我在Windows Server 2008 R2中部署代码时,它不会放置该文件,并引发Win32异常,错误代码为0X80004005。应用程序池标识是网络服务,我使用的是域用户帐户

我已经使用该命令检查了连接和用户名密码的有效性,它在服务器runas/netonly/user:DOMAIN\user“explorer.exe\Path”上运行良好

还请注意,我的防火墙已关闭,并且我的Windows Server 2008上没有运行防病毒软件

非常感谢您的帮助


我使用了从Windows Vista开始的示例代码Windows服务在安全方面表现不同,不允许任何“与桌面相关的活动”(如安装某些东西)

ASP.NET在作为服务运行的IIS下运行-您尝试的内容不受支持,只能通过绕过权限等问题来实现

不确定你想要实现什么


也许有一种不同的方法来实现这个目标……

WNetUseConnection将起作用,我们需要正确定义它的所有结构。WNetUseConnection(IntPtr.Zero,nr,密码,用户名,0,null,null,null)

我的ASP.NET应用程序生成一个CSV文件,我需要将其放到网络路径(具有特定权限)。另一种方法是在本地创建此CSV,并使用另一个程序(windows服务或计划任务控制台应用程序)拾取此文件并放到网络位置。我认为这是最简单的方法——根据文章,人们可以做到这一点……我理解这段代码,但正如我所说的:Vista改变了这些东西,如果你不想严重破坏权限,你就不能让它以这种方式工作。。。我建议只生成CSV,将其存储在本地,任何需要它的人都可以通过HTTP URL/get。。。这可以是一个计划作业,也可以是任何真正在服务外部运行的应用程序……我已将代码移动到配置了计划任务的控制台应用程序。但是,我看到WNetAddConnection2具有间歇性行为。他们是否有其他方式连接到网络共享?代码工作了一次,但之后失败,并出现相同的错误。是否有任何原因表明驱动器不是通过Windows资源管理器永久映射一次,然后由控制台程序使用?是的,但(当用户注销时)您的控制台应用程序也没有运行,或者?当用户再次登录时,映射就回来了——至少当您使其持久化时。。。