System.IO.File.WriteAllText(字符串名称,字符串文本)期间的线程中止错误
Posted
技术标签:
【中文标题】System.IO.File.WriteAllText(字符串名称,字符串文本)期间的线程中止错误【英文标题】:Thread aborted error during System.IO.File.WriteAllText(string name, string text) 【发布时间】:2014-05-29 08:39:02 【问题描述】:我在尝试写入系统上的文件时收到以下错误。该代码一直有效,突然之间我不断收到此错误。谁能告诉我可能出了什么问题?
错误:
线程被中止。
堆栈跟踪:
在 Microsoft.Win32.Win32Native.CreateFile(String lpFileName, Int32 dwDesiredAccess, FileShare dwShareMode, SECURITY_ATTRIBUTES securityAttrs, FileMode dwCreationDisposition, Int32 dwFlagsAndAttributes, IntPtr hTemplateFile)
在 Microsoft.Win32.Win32Native.SafeCreateFile(String lpFileName, Int32 dwDesiredAccess, FileShare dwShareMode, SECURITY_ATTRIBUTES securityAttrs, FileMode dwCreationDisposition, Int32 dwFlagsAndAttributes, IntPtr hTemplateFile)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize)
在 System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding)
在 System.IO.File.InternalWriteAllText(字符串路径,字符串内容,编码编码)
在 MyModule.TrySaveFile(String fileName, StringBuilder sb)
在我的代码中,我使用的是这一行:
File.WriteAllText(fileName, sb.ToString());
【问题讨论】:
您的应用程序现在可以访问该文件吗?您是否设置了适当的权限?似乎某些东西(可能是操作系统)正在拒绝访问文件并终止访问过程。您是否也碰巧从未安装的可移动驱动器访问文件,或者在写入时被卸载? 好像你没有创建文件的权限,或者文件存在而你没有权限替换它,或者你打开了不能修改,因为是受到打开文件的威胁的保护 您好,感谢您的回复。从应用程序一直能够将其写入文件夹,然后突然停止工作。并且在实际解决了该问题的服务器上尝试了 IIS 重置。所以似乎不是访问问题。但我仍然想了解问题的根本原因。 有人可以告诉我在尝试写入文件时可能发生“线程中止异常”的不同情况吗?还有哪些情况下 IIS 重置可能会解决问题?补充一点,我正在从 Web 应用程序写入文件,因此完成了 IIS 重置:) 嗨,有人可以告诉我可能的原因,因为我再次面临这个问题。 【参考方案1】:您需要获得从应用程序创建文件的权限。
【讨论】:
以上是关于System.IO.File.WriteAllText(字符串名称,字符串文本)期间的线程中止错误的主要内容,如果未能解决你的问题,请参考以下文章