我在通过网络将文件写入远程目录时遇到问题。当我尝试检查目录是否存在时,以下代码失败:
if (!Directory.Exists(processingPath))
Directory.CreateDirectory(processingPath);
处理路径的组成如下
processingPath = xxxObject.serverPath + "processing\\";
xxxObject.serverPath 包含类似的内容
\\machineNetworkName\sharedFolder\
它工作正常,但是当处理许多请求时(作为异步任务运行),它停止工作并陷入异常:
System.IO.IOException: The network path was not found.
您能帮我看看可能是什么问题以及为什么它在网络路径上一段时间后失败吗???
感谢您的解决方案
我之前也遇到过同样的错误,是关于身份验证问题。
您必须确保在 IIS 上正确设置用户,因为它使用默认应用程序池的身份,无法访问您的 NFS。
您还可以使用 IIS 虚拟文件夹来设置标识。
(在 IIS 管理器上,请参阅应用程序池设置 -> 身份并且虚拟文件夹设置->身份).
就我而言,直接在代码中使用模拟效果更好,因此我建议您使用VladL https://stackoverflow.com/a/22481542/1528682WrappedImpersonationContext 对象:连接到网络共享时如何提供用户名和密码 https://stackoverflow.com/questions/295538/how-to-provide-user-name-and-password-when-connecting-to-a-network-share
最后要检查的是 NFS 服务器上文件的所有者,如果它们是在 root 用户下创建的,则可能无法工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)