我有一个.dll,可以调出我创建的服务(IIS应用程序池)。两者都位于网络上的不同服务器上。 .dll调出该服务。然后,该服务将创建一个文件并将其保存在自己的驱动器上。然后,该服务将该文件的完整路径返回给调用.dll。然后,.dll尝试将File.Move()将此文件传输到另一个网络驱动器。该服务正在使用应用程序池标识(用于创建和保存文件),并且运行.dll的服务帐户在源文件夹和目标文件夹上均具有“修改”访问权限。所有这些在本地以及我们的开发和测试环境中均运行良好,但是在我们的PROD环境中,出现“找不到文件”错误。
<errors exceptionType="FileNotFoundException">
<error Source="mscorlib" TargetSite="Void WinIOError(Int32,System.String)">Could not find file 'filepath'.</error>
<stack> at System.IO.__Error.WinIOError(Int32 errorCode,String maybeFullPath)</stack>
<stack> at System.IO.File.InternalMove(String sourceFileName,String destFileName,Boolean checkHost)</stack>
</errors>
错误中的'filepath'实际上是所生成文件的完整UNC路径。我已经确认文件确实存在,并且将错误中包含的路径复制到Windows资源管理器中可以打开文件,没有问题。我不确定还有什么要考虑或考虑的。我已经阅读了尽可能多的关于File.File的冲突信息。随着我继续努力解决这个问题,我跨网络驱动器移动。