【WCF调用出错】System.Runtime.Serialization.SerializationException

artwl_cn 2010-12-03 04:35:27
WCF调用其中一个方法会出错,出错信息:

Server Error in '/' Application.
--------------------------------------------------------------------------------

Error in line 2 position 451. 'EndElement' 'CommentInfo' from namespace 'http://schemas.datacontract.org/2004/07/test.Space.Business.Entities' is not expected. Expecting element '_CommentID'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Runtime.Serialization.SerializationException: Error in line 2 position 451. 'EndElement' 'CommentInfo' from namespace 'http://schemas.datacontract.org/2004/07/test.Space.Business.Entities' is not expected. Expecting element '_CommentID'.

Source Error:


Line 1370: public int PostUserID {
Line 1371: get {
Line 1372: return this.PostUserIDField;
Line 1373: }
Line 1374: set {


Source File: E:\OpenEngine\trunk\src\UcHome\test.UcHome.ExternalService\Service References\QuestionWcfServiceNew\Reference.cs Line: 1372

Stack Trace:


[SerializationException: Error in line 2 position 451. 'EndElement' 'CommentInfo' from namespace 'http://schemas.datacontract.org/2004/07/test.Space.Business.Entities' is not expected. Expecting element '_CommentID'.]
System.Runtime.Serialization.XmlObjectSerializerReadContext.ThrowRequiredMemberMissingException(XmlReaderDelegator xmlReader, Int32 memberIndex, Int32 requiredIndex, XmlDictionaryString[] memberNames) +759662
ReadCommentInfoFromXml(XmlReaderDelegator , XmlObjectSerializerReadContext , XmlDictionaryString[] , XmlDictionaryString[] ) +2134
System.Runtime.Serialization.ClassDataContract.ReadXmlValue(XmlReaderDelegator xmlReader, XmlObjectSerializerReadContext context) +47
System.Runtime.Serialization.XmlObjectSerializerReadContext.ReadDataContractValue(DataContract dataContract, XmlReaderDelegator reader) +18
System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator reader, String name, String ns, Type declaredType, DataContract& dataContract) +125
System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator xmlReader, Int32 id, RuntimeTypeHandle declaredTypeHandle, String name, String ns) +67
ReadArrayOfCommentInfoFromXml(XmlReaderDelegator , XmlObjectSerializerReadContext , XmlDictionaryString , XmlDictionaryString , CollectionDataContract ) +147
System.Runtime.Serialization.CollectionDataContract.ReadXmlValue(XmlReaderDelegator xmlReader, XmlObjectSerializerReadContext context) +79
System.Runtime.Serialization.XmlObjectSerializerReadContext.ReadDataContractValue(DataContract dataContract, XmlReaderDelegator reader) +18
System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator reader, String name, String ns, Type declaredType, DataContract& dataContract) +125
System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator xmlReader, Type declaredType, DataContract dataContract, String name, String ns) +48
System.Runtime.Serialization.DataContractSerializer.InternalReadObject(XmlReaderDelegator xmlReader, Boolean verifyObjectName, DataContractResolver dataContractResolver) +243
System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions(XmlReaderDelegator reader, Boolean verifyObjectName, DataContractResolver dataContractResolver) +98
System.Runtime.Serialization.DataContractSerializer.ReadObject(XmlDictionaryReader reader, Boolean verifyObjectName) +46
System.ServiceModel.Dispatcher.DataContractSerializerOperationFormatter.DeserializeParameterPart(XmlDictionaryReader reader, PartInfo part, Boolean isRequest) +55

[NetDispatcherFaultException: The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter http://tempuri.org/:GetAllCommentByQIDResult. The InnerException message was 'Error in line 2 position 451. 'EndElement' 'CommentInfo' from namespace 'http://schemas.datacontract.org/2004/07/test.Space.Business.Entities' is not expected. Expecting element '_CommentID'.'. Please see InnerException for more details.]
System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) +9464463
System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) +345
test.UcHome.ExternalService.QuestionWcfServiceNew.IQuestionServiceNew.GetAllCommentByQID(Int32 QID) +0
test.UcHome.ExternalService.QuestionWcfServiceNew.QuestionServiceNewClient.GetAllCommentByQID(Int32 QID) in E:\OpenEngine\trunk\src\UcHome\test.UcHome.ExternalService\Service References\QuestionWcfServiceNew\Reference.cs:1372
question_item.InitData(Int32 qid) in e:\OpenEngine\trunk\src\UcHome\test.UcHome.Web\question\item.aspx.cs:77
question_item.Page_Load(Object sender, EventArgs e) in e:\OpenEngine\trunk\src\UcHome\test.UcHome.Web\question\item.aspx.cs:31
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +91
System.Web.UI.Control.LoadRecursive() +74
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207


服务器端test.Space.Business.Entities:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;

namespace test.Space.Business.Entities
{
/// <summary>
/// 评论类(实体类)
/// </summary>
[Serializable]
[DataContract]
public class CommentInfo
{
private int _CommentID;
[DataMember]
public int CommentID
{
get
{
return _CommentID;
}
set
{
this._CommentID = value;
}
}

private string _Content;
[DataMember]
public string Content
{
get
{
return _Content;
}
set
{
this._Content = value;
}
}

private int _PostUserID;
[DataMember]
public int PostUserID
{
get
{
return _PostUserID;
}
set
{
this._PostUserID = value;
}
}

private string _PostUserName;
[DataMember]
public string PostUserName
{
get
{
return _PostUserName;
}
set
{
this._PostUserName = value;
}
}

private bool _IsActive;
[DataMember]
public bool IsActive
{
get
{
return _IsActive;
}
set
{
this._IsActive = value;
}
}

private System.DateTime _DateAdded;
[DataMember]
public System.DateTime DateAdded
{
get
{
return _DateAdded;
}
set
{
this._DateAdded = value;
}
}

private int _ContentType;
[DataMember]
public int ContentType
{
get
{
return _ContentType;
}
set
{
this._ContentType = value;
}
}

private int _ContentID;
[DataMember]
public int ContentID
{
get
{
return _ContentID;
}
set
{
this._ContentID = value;
}
}

private int _Rating;
[DataMember]
public int Rating
{
get
{
return _Rating;
}
set
{
this._Rating = value;
}
}

private bool _IsHidden;
[DataMember]
public bool IsHidden
{
get
{
return _IsHidden;
}
set
{
this._IsHidden = value;
}
}
/// <summary>
/// 用户别名
/// </summary>
[DataMember]
public string UserAlias { get; set; }
/// <summary>
/// 用户的头像图片的名称
/// </summary>
[DataMember]
public String IconName { get; set; }

[DataMember]
public int QScore { get; set; }
}
}


最有可能是哪里出错,请教了?
...全文
431 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
TT7380 2011-12-06
  • 打赏
  • 举报
回复
上来就是一段代码,无语。。。。
porschev 2010-12-03
  • 打赏
  • 举报
回复
帮顶。。完全看不懂。。
Return门徒 2010-12-03
  • 打赏
  • 举报
回复

好长,什么错误撒~!

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧