Ich habe einige Abfragen für eine Website, deren Ausführung aufgrund des Datenmodells und der in den Tabellen enthaltenen Datenmenge sehr lange dauert. Bisher habe ich sie manuell in der Datenbank ausgeführt, um Timeout-Probleme usw. zu vermeiden. Der Eigentümer der Website hat jedoch darum gebeten, dass diese Abfragen auf der Website verfügbar gemacht werden, damit er die Abfrageergebnisse abrufen kann.
Ich hatte daran gedacht, dies über einen .NET-Webdienst zu tun und die klassische ASP-Seite diesen asynchron aufrufen zu lassen. Die Webseite würde den Prozess nur einleiten und den Benutzer dann zu einem anderen Bildschirm weiterleiten. Der Webdienst würde dann die Abfrage ausführen und dem Benutzer die Ergebnisse in einer CSV-Datei per E-Mail zusenden.
Ich kann das aber nicht zum Laufen bringen. Der Dienst läuft gut, wenn ich ihn über den Bildschirm im IE aufrufe, aber der Aufruf über einen Ajax-Aufruf in ASP scheint ein Problem zu sein - es wird kein Fehler generiert, aber die CSV-Datei wird auch nicht erstellt.
Ich habe den klassischen ASP-Code unten beigefügt. Der Dienst hat nur eine Methode mit einem Parameter mit dem Namen email, der vom Typ string ist. Kann jemand einen Fehler darin erkennen? Ist dies der beste Weg, dies zu tun, oder sollte ich einen anderen Ansatz in Betracht ziehen?
CODE
<%
message = "http://wwww.example.com/service/query.asmx/GetResults?email=test"
set req = server.createobject("MSXML2.XMLHTTP")
With req
.open "GET", message, False
.setRequestHeader "Content-Type", "text/xml"
.send
End With
works = req.responseText
response.redirect "http://www.bbc.co.uk"
%>