WCF端点启动时出现奇怪的异常

时间:2010-09-27 09:56:39

标签: c# .net http wcf

我收到以下异常,并且没有太多关于应该修复的内容和方法的线索:

The operation 'ShowData' could not be loaded because it has a parameter or return type of type System.ServiceModel.Channels.Message or a type that has MessageContractAttribute and other parameters of different types. When using System.ServiceModel.Channels.Message or types with MessageContractAttribute, the method must not use any other types of parameters.

我的代码:

[ServiceContract(SessionMode=SessionMode.NotAllowed)] 
public interface IHelper 
{
  [WebGet(UriTemplate = "/cgi/manager.exe?GetData={data}")]
  [OperationContract]
  Message ShowData(int data);
}

public class Helper : IHelper 
{
  public Message ShowData(int data)
  {
    var result = new StringBuilder(...);

    foreach (...)
    {
      result.AppendFormat(...);
    }

    result.AppendLine(...);

    return WebOperationContext.Current.CreateTextResponse(result.ToString(), "text/xml", Encoding.ASCII);
  } 

我想它说我不能将Messageint混在一起?依赖于解析请求的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

您收到错误是因为您正在返回WCF Message类型。这意味着您必须从输入中删除数据参数,或者将其设为Message类型而不是int

Message类是WCF基础结构的基础部分。它在此处记录:http://msdn.microsoft.com/en-us/library/ms734675.aspx

最好定义自己的数据协定类型,而不是使用Message