首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在IIS下调用MoveFileEx

在IIS下调用MoveFileEx
EN

Stack Overflow用户
提问于 2011-06-06 10:43:05
回答 1查看 211关注 0票数 0

我正在使用这类代码在系统重新启动后删除文件。

DllImport("kernel32.dll",SetLastError = true,CharSet = CharSet.Unicode)

公共静态输出bool MoveFileEx(string lpExistingFileName,string pNewFileName,MoveFileFlags dwFlags);

一切都好,与本地iis-模仿者在VS。但是当我使用IIS时,这段代码就会失败,没有任何错误消息。

我可以建议,这是IIS上的权限问题。但这只是我的愚蠢建议。

你能帮我处理这个案子吗?

EN

回答 1

Stack Overflow用户

发布于 2011-06-06 11:10:39

  • 检查调用MoveFileEx()的返回值。如果为false,则调用失败。
  • 调用Marshal.GetLastWin32Error以查找Win32错误代码。这有时有助于缩小问题的范围(尽管并不总是如此)。
  • 如果不能提供更多的信息,那么您需要告诉我们您正在移动的文件以及它的新目的地的完整路径名。

在您的评论中,您指出您正在传递MOVEFILE_DELAY_UNTIL_REBOOT标志。documentation for MoveFileEx指出:

此值只能在进程位于属于administrators组或LocalSystem帐户的用户的上下文中使用。

这似乎是问题的根本原因。感谢@Logan指出这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6250858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档