Creare web service con ASP non è facilissimo, se paragonato a quello che bisogna fare per raggiungere lo stesso scopo con ASP.NET.
Non è raro invece che si debba accedere ad alcuni dati presenti su un sito su cui il supporto ASP.NET non sia presente.
In casi come questo è possibile emulare un web service utilizzando la particolarità dell'oggetto recordset di ADO di poter esportare i dati in formati XML attraverso il metodo Save.
Ecco il file ASP:
<!--METADATA Type="typelib" uuid="{00000205-0000-0010-8000-00AA006D2EA4}"--><% ' content type response.ContentType = "text/xml" ' connessione strConn = "Provider = SQLOLEDB.1; Data Source = localhost; User ID = sa; Password =" set conn = Server.CreateObject("ADODB.Connection") conn.Open strconn set rs = Server.CreateOBject("ADODB.Recordset") rs.Open "SELECT TOP 10 * FROM faq", conn, 1, 3 rs.Save Response, adPersistXML ' libero risorse rs.Close Set rs = Nothing conn.Close set conn = Nothing %> Supponendo di aver chiamato questo script ASP provider.asp, ci basterà utilizzare uno script come il seguente per recuperare i dati e visualizzarli in un datagrid: Ed ecco lo script ASP.NET: [code lang="aspx"]<%@ Import Namespace="System.Data"%> <SCRIPT language="VB" runat="server"> Sub Page_Load(sender As Object, E As EventArgs) Dim strURL as String = "http://localhost/provider.asp" ' inserisco il file XML nel dataset Dim ds As New DataSet ds.ReadXml(strURL) ' quale "tabella" prendere? queryres.DataSource = new DataView(ds.Tables(1)) ' effetto il databinding sul datagrid queryres.DataBind() End Sub </script> <ASP:DataGrid id="queryres" runat="server" BackColor="white" Headerstyle-BackColor="lightsteelblue" Headerstyle-Font-Style="bold" />
Ovviamente questo workaround va benissimo per "web service" testuali, che espongano solo contenuti, mentre diventa più macchinoso da implementare nel caso in cui il web service debba avere una propria logica interna.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Short-circuiting della Pipeline in ASP.NET Core
Load test di ASP.NET Core con k6
Implementare il throttling in ASP.NET Core
Effettuare il binding di date in Blazor
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
I più letti di oggi
- Miglioramenti nelle performance di Angular 16
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- HTML5 con CSS e JavaScript
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Ottimizzazione dei block template in Angular 17
- Disabilitare automaticamente un workflow di GitHub (parte 2)