De retour de type non valide erreur lors de l'appel de la WCF service web 4.0

Je suis en train d'écrire et appel de service web WCF, voici les détails:

Web.config:

<add relativeAddress="FetchData.svc" service="WCF.Services.FetchData" />

<service name="WCF.Services.FetchData">
    <endpoint address="" binding="webHttpBinding" bindingConfiguration="" name="FetchData" contract="WCF.Services.FetchData" />
</service>

FetchData Classe (Exemple De Code):

using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.Web;
using System.Xml;
using Webservices.Services;
using Data = Webservices.Data;
using System.ServiceModel.Web;
using System.IO;
using System.Net;
using System.ServiceModel.Channels;
using System.Web.UI;
using System.Text;
namespace WCF.Services
{    
[ServiceContract(Namespace = "urn:WCF.Services.FetchData")]
public class FetchData
{
Data.GetConnect mConnect = new Data.GetConnect();
private Message RetrievePublishedData(String pub, int number)
{
String strOutput = String.Empty; 
if (!String.IsNullOrEmpty(pub))
{
Boolean pubURLExists = mConnect.CheckPubUrlExists(pub);
if (!pubURLExists)
{
WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.NotFound;
return WebOperationContext.Current.CreateTextResponse(String.Format("Requested publication '{0}' is not available.", pub), MimeTypes.TextPlain, Encoding.UTF8);
}
using (StringWriter sw = new StringWriterEncoding())
{
using (HtmlTextWriter hw = new HtmlTextWriter(sw))
{
hw.RenderBeginTag(HtmlTextWriterTag.Html);
XmlNode publishedData = mConnect.GetPublishedData(pub, number);
hw.RenderEndTag();
}
return WebOperationContext.Current.CreateTextResponse(sw.ToString(),MimeTypes.TextHTML, Encoding.UTF8);
}
}
return WebOperationContext.Current.CreateTextResponse(strOutput, MimeTypes.TextHTML, Encoding.UTF8);
}
[OperationContract]
[WebGet(UriTemplate = "/published/{number}/{*pub=default}")]
public Message FetchPublished(String pub, int number)
{
return RetrievePublishedData(pub, number);
}
}
}

Maintenant, quand je suis en train de naviguer sur le web service, je suis d'erreur ci-dessous:

URL du Service Web - http://localhost:8082/FetchData.svc

Erreur:
L'opération "FetchPublished' n'a pas pu être chargé, car il a un paramètre ou le type de retour de type System.ServiceModel.Les canaux.Message ou un type qui a MessageContractAttribute et d'autres paramètres de types différents. Lors de l'utilisation du Système.ServiceModel.Les canaux.Message ou de types avec MessageContractAttribute, la méthode ne doit pas utiliser d'autres types de paramètres.

Edit:

namespace WCFWebServices
{
[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)]
[ServiceContract(Namespace = "urn:WCFWebServices.fetchPush")]
public class FetchData
{
[MessageContract]
public class RetrievePublishedDataInput
{
[MessageBodyMember]
public String pub;
[MessageBodyMember]
public String number;
}
private Message RetrievePublishedData(RetrievePublishedDataInput input)
{
String strOutput = String.Empty;
String pub = input.pub;
String number = input.number;
if (!String.IsNullOrEmpty(pub))
{
Boolean pubURLExists = true;
if (!pubURLExists)
{
WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.NotFound;
return WebOperationContext.Current.CreateTextResponse(String.Format("Requested publication '{0}' is not available.", pub), "application/plain; charset=utf-8", Encoding.UTF8);
}
using (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter hw = new HtmlTextWriter(sw))
{
hw.RenderBeginTag(HtmlTextWriterTag.Html);
hw.RenderEndTag();
}
return WebOperationContext.Current.CreateTextResponse(sw.ToString(), "application/html; charset=utf-8", Encoding.UTF8);
}
}
return WebOperationContext.Current.CreateTextResponse(strOutput, "application/html; charset=utf-8", Encoding.UTF8);
}
[OperationContract]
[WebGet(UriTemplate = "/publishedData/{number}/{pub=default}")]
public Message FetchPublished(RetrievePublishedDataInput input)
{
return RetrievePublishedData(input);
}
}      
}

OriginalL'auteur Manoj Singh | 2013-12-24