我正在使用这类代码在系统重新启动后删除文件。
DllImport("kernel32.dll",SetLastError = true,CharSet = CharSet.Unicode)
公共静态输出bool MoveFileEx(string lpExistingFileName,string pNewFileName,MoveFileFlags dwFlags);
一切都好,与本地iis-模仿者在VS。但是当我使用IIS时,这段代码就会失败,没有任何错误消息。
我可以建议,这是IIS上的权限问题。但这只是我的愚蠢建议。
你能帮我处理这个案子吗?
发布于 2011-06-06 11:10:39
MoveFileEx()的返回值。如果为false,则调用失败。Marshal.GetLastWin32Error以查找Win32错误代码。这有时有助于缩小问题的范围(尽管并不总是如此)。在您的评论中,您指出您正在传递MOVEFILE_DELAY_UNTIL_REBOOT标志。documentation for MoveFileEx指出:
此值只能在进程位于属于administrators组或LocalSystem帐户的用户的上下文中使用。
这似乎是问题的根本原因。感谢@Logan指出这一点。
https://stackoverflow.com/questions/6250858
复制相似问题