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
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Implementare il throttling in ASP.NET Core
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Load test di ASP.NET Core con k6
Effettuare il binding di date in Blazor
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Short-circuiting della Pipeline in ASP.NET Core