Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在IIS下调用MoveFileEx_C#_.net_Kernel_Dllimport - Fatal编程技术网

C# 在IIS下调用MoveFileEx

C# 在IIS下调用MoveFileEx,c#,.net,kernel,dllimport,C#,.net,Kernel,Dllimport,我正在使用这种代码在系统重新启动后删除文件 [DllImport(“kernel32.dll”,SetLastError=true,CharSet=CharSet.Unicode)] 公共静态外部bool MoveFileEx(字符串lpExistingFileName、字符串pNewFileName、MoveFileFlags dwFlags) 在VS中使用本机iis模仿者一切正常。 但是当我使用IIS时,这段代码失败,没有任何错误消息 我认为这是IIS权限的问题。 但这只是我愚蠢的建议 你能

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

[DllImport(“kernel32.dll”,SetLastError=true,CharSet=CharSet.Unicode)]
公共静态外部bool MoveFileEx(字符串lpExistingFileName、字符串pNewFileName、MoveFileFlags dwFlags)

在VS中使用本机iis模仿者一切正常。 但是当我使用IIS时,这段代码失败,没有任何错误消息

我认为这是IIS权限的问题。 但这只是我愚蠢的建议

你能帮我拿这个箱子吗?

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

在您的评论中,您声明您正在传递
MOVEFILE\u DELAY\u直到重新启动
标志。各国:

仅当进程位于属于administrators组或LocalSystem帐户的用户上下文中时,才能使用此值


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

这意味着流程没有足够的权限来执行此操作。你能告诉我们涉及的路径吗?这是路径:C:\TempFiles\Test\Artur-Okolity-Test\Yo-Preview 004\image.jpg。顺便说一句,我使用参数MoveFileFlags.DelayUntilReboot调用此方法。移动文件需要两个路径。您只提供了一个。DelayUntilReboot需要admin或LocalSystem