求助调用webservice错误~~~~~~

hellNo 2014-07-25 09:52:13

SuggestWebService.SuggestionInfo suggest = new SuggestWebService.SuggestionInfo
{
Content = content,
Email = email,
AppName = "ios",
TimeStamp = DateTime.Now
};
SuggestWebService.SuggestWebServiceSoapClient suggestService = new SuggestWebService.SuggestWebServiceSoapClient("SuggestWebServiceSoap");
int a = suggestService.AddSuggestion(suggest);

这是webservice段的代码

[WebMethod]
/// <summary>
/// 添加
/// </summary>
/// <param name="entity">实体</param>
/// <returns>受影响行数</returns>
public int AddSuggestion(SuggestionInfo entity)
{
string cmdText = @"INSERT INTO `SuggestionInfo` (`appName`,`Email`,`content`,`timeStamp`)
VALUES (?appName,?Email,?content,?timeStamp);
";
MySqlParameter[] cmdParam = {
new MySqlParameter("?appName",entity.AppName),
new MySqlParameter("?Email",entity.Email),
new MySqlParameter("?content",entity.Content),
new MySqlParameter("?timeStamp",entity.TimeStamp)
};
return DBHelper.ExecuteNonQuery(cmdText, cmdParam);
}


这是实体

[Serializable]
public class SuggestionInfo
{
#region 字段
private int _id;
private string _appName;
private string _email;
private string _content;
private DateTime _timeStamp;
#endregion

/// <summary>
/// 标识
/// </summary>
public int Id
{
get { return _id; }
set { _id = value; }
}

/// <summary>
/// 所属 应用
/// </summary>
public string AppName
{
get { return _appName; }
set { _appName = value; }
}
/// <summary>
/// 投诉者邮箱
/// </summary>
public string Email
{
get { return _email; }
set { _email = value; }
}

/// <summary>
/// 建议内容
/// </summary>
public string Content
{
get { return _content; }
set { _content = value; }
}

/// <summary>
/// 时间戳
/// </summary>
public DateTime TimeStamp
{
get { return _timeStamp; }
set { _timeStamp = value; }
}

}

这段代码我发布到本地的192.168.1.22上的iis上是可以调用,可以添加

但是把网站发布到外网服务器后,调用这个webservice时出现了

{"Message":"无法序列化类型“System.Threading.Tasks.Task`1[System.String]”。请考虑将其标以 DataContractAttribute 特性,并将其所有要序列化的成员标以 DataMemberAttribute 特性。如果类型为集合,则请考虑将其标以 CollectionDataContractAttribute 特性。有关其他受支持的类型,请参见 Microsoft .NET Framework 文档。","StackTrace":" 在 System.Runtime.Serialization.DataContract.DataContractCriticalHelper.ThrowInvalidDataContractException(String message, Type type)\r\n 在 System.Runtime.Serialization.DataContract.DataContractCriticalHelper.CreateDataContract(Int32 id, RuntimeTypeHandle typeHandle, Type type)\r\n 在 System.Runtime.Serialization.DataContract.DataContractCriticalHelper.GetDataContractSkipValidation(Int32 id, RuntimeTypeHandle typeHandle, Type type)\r\n 在 System.Runtime.Serialization.XsdDataContractExporter.GetSchemaTypeName(Type type)\r\n 在 System.ServiceModel.Dispatcher.DataContractSerializerOperationFormatter.CreatePartInfo(MessagePartDescription part, OperationFormatStyle style, DataContractSerializerOperationBehavior serializerFactory)\r\n 在 System.ServiceModel.Dispatcher.DataContractSerializerOperationFormatter.CreateMessageInfo(DataContractFormatAttribute dataContractFormatAttribute, MessageDescription messageDescription, DataContractSerializerOperationBehavior serializerFactory)\r\n 在 System.ServiceModel.Dispatcher.DataContractSerializerOperationFormatter..ctor(OperationDescription description, DataContractFormatAttribute dataContractFormatAttribute, DataContractSerializerOperationBehavior serializerFactory)\r\n 在 System.ServiceModel.Description.DataContractSerializerOperationBehavior.GetFormatter(OperationDescription operation, Boolean& formatRequest, Boolean& formatReply, Boolean isProxy)\r\n 在 System.ServiceModel.Description.DataContractSerializerOperationBehavior.System.ServiceModel.Description.IOperationBehavior.ApplyClientBehavior(OperationDescription description, ClientOperation proxy)\r\n 在 System.ServiceModel.Description.DispatcherBuilder.BindOperations(ContractDescription contract, ClientRuntime proxy, DispatchRuntime dispatch)\r\n 在 System.ServiceModel.Description.DispatcherBuilder.BuildProxyBehavior(ServiceEndpoint serviceEndpoint, BindingParameterCollection& parameters)\r\n 在 System.ServiceModel.Channels.ServiceChannelFactory.BuildChannelFactory(ServiceEndpoint serviceEndpoint, Boolean useActiveAutoClose)\r\n 在 System.ServiceModel.ChannelFactory.CreateFactory()\r\n 在 System.ServiceModel.ChannelFactory.OnOpening()\r\n 在 System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)\r\n 在 System.ServiceModel.ChannelFactory.EnsureOpened()\r\n 在 System.ServiceModel.ChannelFactory`1.CreateChannel(EndpointAddress address, Uri via)\r\n 在 System.ServiceModel.ClientBase`1.CreateChannel()\r\n 在 System.ServiceModel.ClientBase`1.CreateChannelInternal()\r\n 在 System.ServiceModel.ClientBase`1.get_Channel()\r\n 在 MomentCamOfficialWeb.MomanHelp_En.AddSuggest(String email, String content)","ExceptionType":"System.Runtime.Serialization.InvalidDataContractException"}



这么个错误。。。。。求助这是什么问题!!!!!!!!!
...全文
193 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hbthyy 2014-07-25
  • 打赏
  • 举报
回复
这个要顶啊!
hellNo 2014-07-25
  • 打赏
  • 举报
回复
好吧,没人搭理我自己解决了
hellNo 2014-07-25
  • 打赏
  • 举报
回复
然后外网的IIS和192.168.1.22的IIS设置完全一样,应用池什么的
save4me 2014-07-25
  • 打赏
  • 举报
回复
参考: Type 'System.Threading.Tasks.Task`1[System.String]' cannot be serialized 你在项目中是不是使用了异步Task?如果是这样的话,服务器需要安装.NET Framework 4.5。原因可能是你的本机上安装了而远程服务器没有。

110,502

社区成员

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

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

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