dkarzon
dkarzon

Reputation: 8038

Make an ASP.NET Web service output an RSS Feed

I have been writing some Web services to be used by a few different client apps and i was trying to write a web service method that simply outputs an RSS XML Feed.

I can create the XML using an XmlTextWriter Object

Then i have tryed outputing to the Response (like i have done in the past when its an aspx page) but this only works it the return type is void (and still doesnt seem to output properly)

Then i tryed making the return type a string and using a StringWriter to output the xml from the XmlTextWriter but the output is then wrapped in a tag.

How can i do this?

Upvotes: 0

Views: 3210

Answers (3)

John Saunders
John Saunders

Reputation: 161773

If you must use ASMX, then you can return an XmlDocument. Build the feed XML however you like, but then return the XmlDocument from your web method.

Upvotes: 0

Jason Coyne
Jason Coyne

Reputation: 6636

Obviously create the interfaces and rest of the WCF service as normal.

Mark the class with the following attribute

[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]

And then this function

public Stream GetRSS()
{
 string output;
 //output = some_text;
 MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(output));
 WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml";
 return ms;
}

Upvotes: 2

Joel Coehoorn
Joel Coehoorn

Reputation: 415820

I have some code for this, but it's more than will fit well in an SO post (about 1000 lines). It's really not that hard; the schema is simple enough you can do it yourself, but you don't have to: there are several components you can just plug in to create the xml for you.

You should see this question:
ASP.Net RSS feed

Upvotes: 0

Related Questions