C# 'Could not find file' 跨网络位置使用 File.Move()

C# 'Could not find file' using File.Move() across network locations

我有一个调用我创建的服务(IIS 应用程序池)的 .dll。两者都位于网络上的不同服务器上。 .dll 调出该服务。该服务然后创建一个文件并将其保存在它自己的驱动器上。该服务然后 returns 将该文件的完整路径返回给调用 .dll。然后 .dll 尝试 File.Move() 此文件到另一个网络驱动器。该服务正在使用应用程序池标识(用于创建和保存文件)和服务帐户 运行 .dll 对源文件夹和目标文件夹具有修改访问权限。所有这些都在本地以及我们的开发和测试环境中流畅地工作,但是在我们的 PROD 环境中我得到这个 "File Not Found" 错误。

         <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 Explorer 打开文件没有问题。我不确定还有什么要看或考虑的。我已经阅读了尽可能多的关于 File.Move 跨网络驱动器的冲突信息,因为我继续用头撞墙试图解决这个问题。

只是回答我自己的问题。看起来 .dll 无法找到网络共享路径。正如我在原来的 post 中所说,复制错误中包含的路径并将其粘贴到 Windows Explorer 中,我毫无问题地打开了文件。但是,文件夹 "Sharing" 选项卡上的实际网络路径设置不正确,因此从技术上讲路径是错误的。修复网络路径后,服务 运行 成功。