我的环境是xp + IIS5 + vs2008
我写了一个序列化的代码,一模一样的代码在winform中可以正常序列化和反序列化,但放在webform后就始终提示错误“生成 XML 文档时出错”
用户代码未处理 System.InvalidOperationException
Message="生成 XML 文档时出错。"
Source="System.Xml"
StackTrace:
在 System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
在 System.Xml.Serialization.XmlSerializer.Serialize(Stream stream, Object o)
在 _Default.Button2_Click(Object sender, EventArgs e) 位置 f:\dotnetWeb\ExpOffice\web\Default.aspx.cs:行号 82
在 System.Web.UI.WebControls.Button.OnClick(EventArgs e)
在 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InnerException: System.InvalidCastException
Message="无法将类型为“CsData”的对象强制转换为类型“CsData”。"
Source="6w2wnbkp"
StackTrace:
在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterCsData.Write3_CsData(Object o)
InnerException:
我查了一下资料似乎是使用到window/temp目录而引起的权限问题,但我把该目录的权限开发到everyone的完全控制,错误依然,请问怎么解决,麻烦知道的指点一下,谢谢
我写了一个序列化的代码,一模一样的代码在winform中可以正常序列化和反序列化,但放在webform后就始终提示错误“生成 XML 文档时出错”
用户代码未处理 System.InvalidOperationException
Message="生成 XML 文档时出错。"
Source="System.Xml"
StackTrace:
在 System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
在 System.Xml.Serialization.XmlSerializer.Serialize(Stream stream, Object o)
在 _Default.Button2_Click(Object sender, EventArgs e) 位置 f:\dotnetWeb\ExpOffice\web\Default.aspx.cs:行号 82
在 System.Web.UI.WebControls.Button.OnClick(EventArgs e)
在 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InnerException: System.InvalidCastException
Message="无法将类型为“CsData”的对象强制转换为类型“CsData”。"
Source="6w2wnbkp"
StackTrace:
在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterCsData.Write3_CsData(Object o)
InnerException:
我查了一下资料似乎是使用到window/temp目录而引起的权限问题,但我把该目录的权限开发到everyone的完全控制,错误依然,请问怎么解决,麻烦知道的指点一下,谢谢
using System.IO;
using System.Xml.Serialization;/// <summary>
/// 序列化
/// </summary>
/// <typeparam name="T">待序列化对象的类型</typeparam>
/// <param name="obj">待序列化对象</param>
/// <param name="fileName">文件路径名</param>
/// <returns></returns>
public static bool Serialize<T>(T obj, string fileName)
{
bool bl = false;
if (!Directory.Exists(Path.GetDirectoryName(fileName)))
Directory.CreateDirectory(Path.GetDirectoryName(fileName));
if (File.Exists(fileName))
File.Delete(fileName);
XmlSerializer mySerializer = new XmlSerializer(typeof(T));
using (StreamWriter sw = new StreamWriter(fileName))
{
try
{
mySerializer.Serialize(sw, obj);
bl = true;
}
catch {
//log process
}
}
return bl;
}
我不是不会写序列化的代码,是执行时出现莫名错误,我不知你有没有在WebForm中执行过,有没有遇到我说的问题
http://topic.csdn.net/u/20090108/18/328870AF-4F27-458A-B5BB-94FC949F8973.html