当前位置:首页 > 技术心得 > 正文内容

C# XmlSerializer无法创建文件或目录

xjtudll7年前 (2019-04-09)技术心得6270

现象:

在某一台XP机器上,时而正常,时而弹出无法创建文件或目录

错误具体信息:

在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)

在 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)

在 System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)

在 Microsoft.CSharp.CSharpCodeGenerator.GetResponseFileCmdArgs(CompilerParameters options, String cmdArgs)

在 Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch(CompilerParameters options, String[] fileNames)

在 Microsoft.CSharp.CSharpCodeGenerator.FromSourceBatch(CompilerParameters options, String[] sources)

在 Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromSourceBatch(CompilerParameters options, String[] sources)

在 System.CodeDom.Compiler.CodeDomProvider.CompileAssemblyFromSource(CompilerParameters options, String[] sources)

在 System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence)

在 System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies)

在 System.Xml.Serialization.XmlSerializer.GenerateTempAssembly(XmlMapping xmlMapping, Type type, String defaultNamespace)

在 System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace)

在 System.Xml.Serialization.XmlSerializer..ctor(Type type)

在 XonixERP.Common.AppConfigSetting.get_Config()

在 DLL.ERP.WinFormUI.ClassUtil.CreateInstance(Type type)

在 XonixERP.View.LogonForm.btnLogin_Click(Object sender, EventArgs e)

在 System.Windows.Forms.Control.OnClick(EventArgs e)

在 System.Windows.Forms.Button.OnClick(EventArgs e)

在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)

在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)

在 System.Windows.Forms.Control.WndProc(Message& m)

在 System.Windows.Forms.ButtonBase.WndProc(Message& m)

在 System.Windows.Forms.Button.WndProc(Message& m)

在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

原因分析:XmlSerializer 运行时所属的帐户或安全环境需要有访问temp 目录的权限

解决办法:

更改权限

1、若C盘是FAT格式,需要将TEMP目录,TMP目录迁移。若C盘是NTFS格式,可跳过此步。

470b234a-2ee7-48c8-8188-a34949ec08a2

2、迁移到NTFS目录后,修改目录权限,允许登录的账户读写

如果没有安全选项卡

点掉"使用简单文件共享",是取消掉它,而不是勾上,一定要注意这一点

a0512321-8320-4439-a893-26f9868cb65c

有没有发现,"安全"选项卡已经出来了

c5e14fa3-0b1c-41ec-a902-f8514576a952

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://www.xjtudll.cn/Exp/541/

标签: C#
分享给朋友:

“C# XmlSerializer无法创建文件或目录” 的相关文章

BOS自定义单据对应模块后台查找

bos数据大量更改新增之后,会出现数据存放位置忘记的情况,下面为单据及单据转换后台查询对应模块的语句,如有需要可参考查询--自定义单据忘记存放在哪个模块可使用以下语句进行查询SELECT it.FID,it.FFunctionID as FSubSysID,it.FNa...

将rdlc报表作为资源嵌套使用

将rdlc报表作为资源嵌套使用

参考资料: 2. 如何将嵌入的资源读取出来,作为报表查看器控件的来源呢? 也就是说,我们可以通过LocalReport的一个特殊属性(ReportEmbeddedResource)来很方便地实现该需求 实际上路径一般默认是类名+文件夹名 我的程序包名是XonixERP.View,然后又有三层文...

金蝶K3:自定义的万能报表位置

金蝶K3:自定义的万能报表位置

场景:客户再【会计总账管理系统】开发了一个万能报表【AAA】 后来因工作交接或者某些原因忘记这个AAA报表放在哪个子系统下了,由于K3子系统非常多,要逐个切换子系统来找自己建立的万能报表再哪里;非常麻烦:使用下面这段脚本查询:select b.FName,* from t_UserDefineRpt...

运放运用中容易忽视的问题

本文收集于网络,原文作者:djyos。 在嵌入式设计中,数字部分的功能越来越强大,而模拟电路大有被边沿化的趋势,但不管怎样,传感器以及其调理电路,还是离不开模拟电路的,其中运放是不可或缺的模拟器件。 本文谈谈在设计运放电路中容易被设计人员疏忽的问题,不注意这些问题,可能导致你的电路看起来能够工作...

SensorTag编译错误Error[e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition.

SensorTag编译错误Error[e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition.

问题: IAR 8051 8.302,编译TI的BLE-CC254x-1.4.0的SensorTag工程,对此工程没有进行任何改动,直接编译,出现如下错误: 分析: 参考TI技术论坛【http://www.deyisupport.com/question_answer/wireless_conne...

金蝶K3物料在各个订单中如何显示长代码

在系统设置-系统设置-仓库管理-系统设置-供应链整体选项中右边‘基础资料录入与显示采用短代码’的勾去掉...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。