Сделайте так, чтобы веб-сервис ASP.NET выводил канал RSS - PullRequest
0 голосов
/ 14 апреля 2009

Я писал некоторые веб-службы для использования несколькими различными клиентскими приложениями, и я пытался написать метод веб-службы, который просто выводит RSS XML Feed.

Я могу создать XML с помощью объекта XmlTextWriter

Затем я попытался вывести результат в Response (как я это делал в прошлом, когда он был на странице aspx), но это работает только в том случае, если тип возвращаемого значения void (и, похоже, все еще не выводится правильно)

Затем я попытался сделать тип возвращаемого значения строкой и использовать StringWriter для вывода xml из XmlTextWriter, но затем вывод обернулся в тег.

Как я могу это сделать?

Ответы [ 3 ]

2 голосов
/ 14 апреля 2009

Очевидно, создайте интерфейсы и остальные службы WCF как обычно.

Пометить класс следующим атрибутом

[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]

А потом эта функция

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;
}
0 голосов
/ 14 апреля 2009

Если вы должны использовать ASMX, вы можете вернуть XmlDocument. Создайте XML-ленту новостей как вам угодно, но затем верните XmlDocument из вашего веб-метода.

0 голосов
/ 14 апреля 2009

У меня есть некоторый код для этого, но он более чем уместится в SO сообщении (около 1000 строк). Это действительно не так сложно; схема достаточно проста, вы можете сделать это самостоятельно, но вам не нужно: есть несколько компонентов, которые вы можете просто подключить, чтобы создать xml для вас.

Вы должны увидеть этот вопрос:
ASP.Net RSS подача

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...