Come costruire un Feed RSS con ASP.NET
() translation by (you can also view the original English article)
Nel corso di questo tutorial, esamineremo come creare un Feed RSS con il framework ASP.NET. Avendo un feed RSS per il tuo sito è diventata una necessità negli ultimi anni. Con i siti di notizie o Blog viene aggiornati di frequente e con la grande quantità di notizie e Blog siti web là fuori, RSS ha permesso ai lettori di tenere il passo con nuovi contenuti senza essere costretti a far loro visita. Una volta che hai completato questo tutorial, saprete come creare un feed RSS con ASP.NET e come eseguire il rendering di documenti XML sul Web ASP.NET pagine.
Passo 0: RSS 2.0 Introduzione
RSS è un formato di diffusione di contenuti web. E ' l'acronimo di "Really Simple Syndication" ed è scritto in XML. Tutti i file RSS devono essere conforme alla specifica XML 1.0, come pubblicato dal World Wide Web Consortium (W3C). Con RSS, è possibile distribuire contenuti web sono aggiornati da un sito web a migliaia di altri in tutto il mondo. Per semplificare il termine, RSS permette la navigazione veloce per notizie e aggiornamenti.
Le regole di sintassi di RSS 2.0 sono abbastanza semplice, ma rigoroso. Ecco un semplice documento RSS:
1 |
<?xml version="1.0" encoding="utf-8" ?>
|
2 |
<rss version="2.0"> |
3 |
<channel>
|
4 |
<title>Your Website Name</title> |
5 |
<link>http://www.yourdomain.com</link> |
6 |
<description>Free RSS Tutorial</description> |
7 |
<item>
|
8 |
<title>First Article</title> |
9 |
<link>http://www.yourdomain.com/article.aspx?ID=1</link> |
10 |
<description>The description of the first article.</description> |
11 |
</item>
|
12 |
<item>
|
13 |
<title>Second Article</title> |
14 |
<link>http://www.yourdomain.com/article.aspx?ID=2</link> |
15 |
<description>The description of the second article.</description> |
16 |
</item>
|
17 |
</channel>
|
18 |
</rss>
|
La prima riga del documento - la dichiarazione di XML - definisce la versione XML e la codifica dei caratteri utilizzati nel documento. In questo caso, il documento è conforme alla 1.0 specifica di XML e utilizza il set di caratteri utf-8
. La riga successiva è la dichiarazione di RSS, che identifica che questo è, infatti, un documento RSS (più specificamente, RSS versione 2.0).
La riga successiva contiene l'elemento <channel>
. Questo elemento viene utilizzato per descrivere il feed RSS. La <channel>
elemento ha tre elementi figlio obbligatori:
-
<title>
- Definisce il titolo del canale (es. nome del tuo sito Web) -
<link>
- Definisce il collegamento ipertestuale per il canale (ad es. http://www.yourdomain.com) -
<description>
- Descrive il canale (per esempio RSS Tutorial gratuito)
Ogni elemento <channel>
può avere uno o più elementi <item>
. Ogni <item>
elemento definisce un articolo o una "storia" all'interno del feed RSS.
La <item>
elemento richiede tre elementi figlio:
-
<title>
- Definisce il titolo dell'elemento (ad es. primo articolo) -
<link>
- Definisce il collegamento ipertestuale alla voce (ad es. http://www.yourdomain.com/article.aspx?ID=1) -
<description>
- Descrive l'elemento (ad esempio la descrizione del primo articolo)
Quando viene visualizzato in Firefox, il documento di RSS qui sopra dovrebbe essere simile a:

Passaggio 1: Guida introduttiva
Per seguire questo tutorial, Immaginate di lavorare come sviluppatore web e stanno costruendo un sito di news tutte le storie di notizie vengono archiviate nel database di Microsoft SQL Server. In particolare, gli articoli vengono memorizzati in una tabella denominata News
, che contiene i seguenti campi:
- ArticleID - un campo di chiave primaria intero incremento automatico identifica in modo univoco ogni articolo
- Titolo - un
nvarchar(256)
, specificando il titolo dell'articolo - Autore - un
nvarchar(50)
, specificando l'autore dell'articolo - Descrizione - un
tipo(500)
, fornendo una descrizione più approfondita dell'articolo - DatePublished -
datetime
, indicando la data che dell'articolo è stato pubblicato
Nota che ci potrebbero essere altri campi nella tabella di notizie
, ma quelli sopra elencati sono gli unici che siamo interessati a usando-- almeno ai fini di un feed RSS.
Useremo il Visual Studio per finire l'esempio. Se non hai la versione completa di VS, si può afferrare l'edizione Express gratuita.
Passaggio 2: Creazione di un RSS. aspx Page
Il nostro prossimo passo è quello di creare una pagina Web ASP.NET (RSS.aspx
) che visualizzerà un elenco delle notizie più recenti come un documento RSS 2.0 correttamente formattato. In Esplora soluzioni
, fare clic destro il nome del progetto e quindi fare clic su Aggiungi nuovo elemento
. Nella finestra di dialogo, in modelli Visual Studio installati fare clic su Web Form
.

Nella casella nome
, digitare un nome per la nuova pagina Web (RSS.aspx
) e quindi fare clic su Aggiungi
. La nuova pagina web ASP.NET (RSS.aspx
) viene creato e visualizzato, conseguenza.
Perché vogliamo che la pagina RSS.aspx
per generare un output XML, la prima cosa che dobbiamo fare è rimuovere tutti i controlli di markup o web HTML dalla pagina e quindi impostare la proprietà ContentType
della @page
direttiva su "text/xml
".
Dopo aver eliminato tutti i markup HTML dalla pagina RSS.aspx
, aggiungere un controllo Repeater
nella pagina. Useremo il controllo Repeater per eseguire il rendering documento RSS RSS. aspx pagina.
Qui è la vista di origine della pagina RSS.aspx
, dopo abbiamo apportato alcune modifiche:
1 |
<%@ Page Language="C#" ContentType="text/xml" AutoEventWireup="true" CodeBehind="rss.aspx.cs" Inherits="NettutsTutorial2.rss" %> |
2 |
|
3 |
<asp:Repeater ID="RepeaterRSS" runat="server"> |
4 |
</asp:Repeater>
|
Passaggio 3: Configurare la stringa di connessione
Prossimo, vogliamo impostare la stringa di connessione dell'origine dati, all'interno del file Web.config
. Salvando le informazioni sulla stringa di connessione, ti evitiamo avendo a livello di codice nel file code-behind. Questo semplifica le cose, se le informazioni sulla stringa di connessione viene modificato in futuro. Posizionarlo nella <connectionStrings>
sezione nell'elemento di configurazione, in questo modo:
1 |
<connectionStrings>
|
2 |
<add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Nettuts.mdf;Integrated Security=True;User Instance=True" |
3 |
providerName="System.Data.SqlClient" /> |
4 |
</connectionStrings>
|
Ci sarà accedere a queste informazioni dal file code-behind più tardi quando si desidera recuperare dati dal database.
Passaggio 4: Rimuovere caratteri non validi dal documento XML
Alcuni caratteri hanno un significato speciale in XML
. Se si inserisce un carattere, ad esempio "<", all'interno di un elemento XML, verrà generato un errore, perché il parser interpreta come l'inizio di un nuovo elemento. Per evitare questo errore, sostituire il "<" personaggio con relativa entità di riferimento
(
Ci sono cinque i riferimenti a entità predefinite in XML:
< | < | meno di |
> | > | maggiore di |
& | & | e commerciale |
' | ' | apostrofo |
" | " | segno di virgolette |
Per evitare il nostro RSS feed produce un errore, dobbiamo cambiare tutti i caratteri non validi in un documento RSS con loro i riferimenti a entità. Aggiungere il codice riportato di seguito nel file code-behind della pagina RSS.aspx
(rss.aspx.cs
):
1 |
protected string RemoveIllegalCharacters(object input) |
2 |
{ |
3 |
// cast the input to a string |
4 |
string data = input.ToString(); |
5 |
|
6 |
// replace illegal characters in XML documents with their entity references |
7 |
data = data.Replace("&", "&"); |
8 |
data = data.Replace("\"", """); |
9 |
data = data.Replace("'", "'"); |
10 |
data = data.Replace("<", "<"); |
11 |
data = data.Replace(">", ">"); |
12 |
|
13 |
return data; |
14 |
} |
La funzione di RemoveIllegalCharacters()
esegue alcune sostituzioni di stringa semplice, se necessario. Chiameremo questa funzione dalla pagina RSS.aspx
poco.
Passaggio 5: Recupero dei dati dal Database
Aggiungere il seguente codice nel gestore eventi Page_Load
:
1 |
protected void Page_Load(object sender, EventArgs e) |
2 |
{ |
3 |
// Get connection string from the web.config file |
4 |
string connString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; |
5 |
|
6 |
// Create SqlConnection object |
7 |
SqlConnection sqlConn = new SqlConnection(); |
8 |
sqlConn.ConnectionString = connString; |
9 |
|
10 |
// SQL query to retrieve data from database |
11 |
string sqlQuery = "SELECT TOP 10 ArticleID, Title, Author, Description, DatePublished FROM News ORDER BY DatePublished DESC"; |
12 |
|
13 |
// Create SqlCommand object |
14 |
SqlCommand cmd = new SqlCommand(); |
15 |
cmd.Connection = sqlConn; |
16 |
cmd.CommandType = CommandType.Text; |
17 |
cmd.CommandText = sqlQuery; |
18 |
|
19 |
// open connection and then binding data into RepeaterRSS control |
20 |
sqlConn.Open(); |
21 |
RepeaterRSS.DataSource = cmd.ExecuteReader(); |
22 |
RepeaterRSS.DataBind(); |
23 |
sqlConn.Close(); |
24 |
} |
Il codice sopra riportato tenterà di recuperare le dieci notizie più recenti dal database. Esso sarà quindi associarli a un controllo Repeater
(RepeaterRSS
) quando la pagina viene caricata.
Passaggio 6: Rendering dei dati
Questo è il nostro ultimo passo. È il momento di eseguire il rendering di elementi dalla tabella News
in un appropriato file di syndication RSS 2.0. Il modo più semplice e veloce per visualizzare i dati del database in formato XML consiste nell'utilizzare un controllo Repeater
(RepeaterRSS
). In particolare, il ripetitore
visualizzerà il <rss>
, <channel>
, ed il sito Web relativo tag dell'elemento nei propri modelli HeaderTemplate
e FooterTemplate
e la <item>
elementi nel modello ItemTemplate
. Non dimenticare di chiamare l'helper RemoveIllegalCharacters()
funzione per sostituire i caratteri indesiderati dall'output della stringa.
Di seguito è riportato la parte HTML della nostra pagina Web ASP.NET (RSS.aspx):
1 |
<%@ Page Language="C#" ContentType="text/xml" AutoEventWireup="true" CodeBehind="rss.aspx.cs" Inherits="NettutsTutorial2.rss" %> |
2 |
|
3 |
<asp:Repeater ID="RepeaterRSS" runat="server"> |
4 |
<HeaderTemplate>
|
5 |
<rss version="2.0"> |
6 |
<channel>
|
7 |
<title>Name of the Website</title> |
8 |
<link>http://www.yourdomain.com</link> |
9 |
<description>
|
10 |
Short description of the website. |
11 |
</description>
|
12 |
</HeaderTemplate>
|
13 |
<ItemTemplate>
|
14 |
<item>
|
15 |
<title><%# RemoveIllegalCharacters(DataBinder.Eval(Container.DataItem, "Title")) %></title> |
16 |
<link>http://www.yourdomain.com/news.aspx?ID=<%# DataBinder.Eval(Container.DataItem, "ArticleID") %></link> |
17 |
<author><%# RemoveIllegalCharacters(DataBinder.Eval(Container.DataItem, "Author"))%></author> |
18 |
<pubDate><%# String.Format("{0:R}", DataBinder.Eval(Container.DataItem, "DatePublished"))%></pubDate> |
19 |
<description><%# RemoveIllegalCharacters(DataBinder.Eval(Container.DataItem, "Description"))%></description> |
20 |
</item>
|
21 |
</ItemTemplate>
|
22 |
<FooterTemplate>
|
23 |
</channel>
|
24 |
</rss>
|
25 |
</FooterTemplate>
|
26 |
</asp:Repeater>
|
La prima cosa interessante notare qui è che il file RSS.aspx
precedente contiene solo il controllo Repeater
(RepeaterRSS
) e nessun altro markup HTML o controlli Web. Questo è perché vogliamo che la pagina per emettere nulla ma di output XML. Abbiamo impostato il ContentType
della direttiva @Page
su "text/xml
" per indicare che l'output della pagina RSS.aspx
è un documento XML.
Nel modello HeaderTemplate
del controllo Repeater
, abbiamo posto il <rss>
e <channel>
elementi.
Successivamente, nel modello ItemTemplate
, abbiamo posto gli elementi di <item>
, che contengono il <title>
, <link>
, <author>
, <pubDate>
, e <description>
elementi, come il luogo per campi di database. Chiamiamo la funzione di RemoveIllegalCharacters()
quando si aggiungono i campi titolo
, autore
e descrizione
di database per l'output XML
. Ricordate, questa funzione semplicemente sostituisce i caratteri XML non validi con loro i riferimenti a entità.
Infine, il campo del database DatePublished
, inserito nell'elemento <pubDate>
, viene formattato utilizzando il metodo String.Format
. L'identificatore di formato standard, R
, formatta il valore di DatePublished
in modo appropriato secondo la RFC 822, data e ora specifiche. Questo inizia con un'abbreviazione di giorno opzionale di tre lettere e la virgola, seguita da un giorno desiderato, il mese abbreviato di tre lettere e poi l'anno, seguito da un tempo con il nome di fuso orario, ad esempio Gio, 4 novembre 2010 20:50:26 GMT.
il risultato
E ci abbiamo! Con il minimo sforzo, abbiamo creato un feed personalizzato per un'applicazione ASP.NET.

Il codice completo
Il File RSS.aspx
1 |
<%@ Page Language="C#" ContentType="text/xml" AutoEventWireup="true" CodeBehind="rss.aspx.cs" Inherits="NettutsTutorial2.rss" %> |
2 |
|
3 |
<asp:Repeater ID="RepeaterRSS" runat="server"> |
4 |
<HeaderTemplate>
|
5 |
<rss version="2.0"> |
6 |
<channel>
|
7 |
<title>Name of the Website</title> |
8 |
<link>http://www.yourdomain.com</link> |
9 |
<description>
|
10 |
Short description of the website. |
11 |
</description>
|
12 |
</HeaderTemplate>
|
13 |
<ItemTemplate>
|
14 |
<item>
|
15 |
<title><%# RemoveIllegalCharacters(DataBinder.Eval(Container.DataItem, "Title")) %></title> |
16 |
<link>http://www.yourdomain.com/news.aspx?ID=<%# DataBinder.Eval(Container.DataItem, "ArticleID") %></link> |
17 |
<author><%# RemoveIllegalCharacters(DataBinder.Eval(Container.DataItem, "Author"))%></author> |
18 |
<pubDate><%# String.Format("{0:R}", DataBinder.Eval(Container.DataItem, "DatePublished"))%></pubDate> |
19 |
<description><%# RemoveIllegalCharacters(DataBinder.Eval(Container.DataItem, "Description"))%></description> |
20 |
</item>
|
21 |
</ItemTemplate>
|
22 |
<FooterTemplate>
|
23 |
</channel>
|
24 |
</rss>
|
25 |
</FooterTemplate>
|
26 |
</asp:Repeater>
|
Rss.aspx.cs File
1 |
using System; |
2 |
using System.Collections; |
3 |
using System.Configuration; |
4 |
using System.Data; |
5 |
using System.Linq; |
6 |
using System.Web; |
7 |
using System.Web.Security; |
8 |
using System.Web.UI; |
9 |
using System.Web.UI.HtmlControls; |
10 |
using System.Web.UI.WebControls; |
11 |
using System.Web.UI.WebControls.WebParts; |
12 |
using System.Xml.Linq; |
13 |
using System.Data.SqlClient; |
14 |
|
15 |
namespace NettutsTutorial2 |
16 |
{ |
17 |
public partial class rss : System.Web.UI.Page |
18 |
{ |
19 |
protected void Page_Load(object sender, EventArgs e) |
20 |
{ |
21 |
// Get connection string from web.config file |
22 |
string connString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; |
23 |
|
24 |
// Create SqlConnection object |
25 |
SqlConnection sqlConn = new SqlConnection(); |
26 |
sqlConn.ConnectionString = connString; |
27 |
|
28 |
// SQL query to retrieve data from database |
29 |
string sqlQuery = "SELECT TOP 10 ArticleID, Title, Author, Description, DatePublished FROM News ORDER BY DatePublished DESC"; |
30 |
|
31 |
// Create SqlCommand object |
32 |
SqlCommand cmd = new SqlCommand(); |
33 |
cmd.Connection = sqlConn; |
34 |
cmd.CommandType = CommandType.Text; |
35 |
cmd.CommandText = sqlQuery; |
36 |
|
37 |
// open connection and then binding data into RepeaterRSS control |
38 |
sqlConn.Open(); |
39 |
RepeaterRSS.DataSource = cmd.ExecuteReader(); |
40 |
RepeaterRSS.DataBind(); |
41 |
sqlConn.Close(); |
42 |
} |
43 |
|
44 |
protected string RemoveIllegalCharacters(object input) |
45 |
{ |
46 |
// cast the input to a string |
47 |
string data = input.ToString(); |
48 |
|
49 |
// replace illegal characters in XML documents with their entity references |
50 |
data = data.Replace("&", "&"); |
51 |
data = data.Replace("\"", """); |
52 |
data = data.Replace("'", "'"); |
53 |
data = data.Replace("<", "<"); |
54 |
data = data.Replace(">", ">"); |
55 |
|
56 |
return data; |
57 |
} |
58 |
} |
59 |
} |
Il File Web.config
1 |
<?xml version="1.0"?>
|
2 |
<configuration>
|
3 |
<configSections>
|
4 |
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> |
5 |
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> |
6 |
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/> |
7 |
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> |
8 |
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/> |
9 |
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/> |
10 |
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/> |
11 |
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/> |
12 |
</sectionGroup>
|
13 |
</sectionGroup>
|
14 |
</sectionGroup>
|
15 |
</configSections>
|
16 |
<appSettings/>
|
17 |
<connectionStrings>
|
18 |
<add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Nettuts.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/> |
19 |
</connectionStrings>
|
20 |
<system.web>
|
21 |
<!--
|
22 |
Set compilation debug="true" to insert debugging
|
23 |
symbols into the compiled page. Because this
|
24 |
affects performance, set this value to true only
|
25 |
during development.
|
26 |
-->
|
27 |
<compilation debug="true"> |
28 |
<assemblies>
|
29 |
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> |
30 |
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> |
31 |
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> |
32 |
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> |
33 |
</assemblies>
|
34 |
</compilation>
|
35 |
<!--
|
36 |
The <authentication> section enables configuration
|
37 |
of the security authentication mode used by
|
38 |
ASP.NET to identify an incoming user.
|
39 |
-->
|
40 |
<authentication mode="Windows"/> |
41 |
<!--
|
42 |
The <customErrors> section enables configuration
|
43 |
of what to do if/when an unhandled error occurs
|
44 |
during the execution of a request. Specifically,
|
45 |
it enables developers to configure html error pages
|
46 |
to be displayed in place of a error stack trace.
|
47 |
|
48 |
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
|
49 |
<error statusCode="403" redirect="NoAccess.htm" />
|
50 |
<error statusCode="404" redirect="FileNotFound.htm" />
|
51 |
</customErrors>
|
52 |
-->
|
53 |
<pages>
|
54 |
<controls>
|
55 |
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> |
56 |
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> |
57 |
</controls>
|
58 |
</pages>
|
59 |
<httpHandlers>
|
60 |
<remove verb="*" path="*.asmx"/> |
61 |
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> |
62 |
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> |
63 |
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/> |
64 |
</httpHandlers>
|
65 |
<httpModules>
|
66 |
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> |
67 |
</httpModules>
|
68 |
</system.web>
|
69 |
<system.codedom>
|
70 |
<compilers>
|
71 |
<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
72 |
<providerOption name="CompilerVersion" value="v3.5"/> |
73 |
<providerOption name="WarnAsError" value="false"/> |
74 |
</compiler>
|
75 |
</compilers>
|
76 |
</system.codedom>
|
77 |
<!--
|
78 |
The system.webServer section is required for running ASP.NET AJAX under Internet
|
79 |
Information Services 7.0. It is not necessary for previous version of IIS.
|
80 |
-->
|
81 |
<system.webServer>
|
82 |
<validation validateIntegratedModeConfiguration="false"/> |
83 |
<modules>
|
84 |
<remove name="ScriptModule"/> |
85 |
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> |
86 |
</modules>
|
87 |
<handlers>
|
88 |
<remove name="WebServiceHandlerFactory-Integrated"/> |
89 |
<remove name="ScriptHandlerFactory"/> |
90 |
<remove name="ScriptHandlerFactoryAppServices"/> |
91 |
<remove name="ScriptResource"/> |
92 |
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> |
93 |
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> |
94 |
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> |
95 |
</handlers>
|
96 |
</system.webServer>
|
97 |
<runtime>
|
98 |
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> |
99 |
<dependentAssembly>
|
100 |
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/> |
101 |
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/> |
102 |
</dependentAssembly>
|
103 |
<dependentAssembly>
|
104 |
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/> |
105 |
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/> |
106 |
</dependentAssembly>
|
107 |
</assemblyBinding>
|
108 |
</runtime>
|
109 |
</configuration>
|
Conclusione
Creazione di un RSS feed con ASP.NET è abbastanza semplice, non è vero? Dobbiamo solo capire la specifica RSS 2.0. Oltre a ciò, utilizzando il controllo Repeater
.NET, possiamo rendere gli elementi da un database nel documento RSS. Sistemi di gestione più contenuti avrà questa funzionalità per impostazione predefinita. Tuttavia, se sei uno sviluppatore e stanno costruendo un sito Web ASP.NET da zero, ora avete le competenze per costruire il tuo feed personalizzato.
Buon coding!