Hallo,
wie kann ich auf meinem ASP.NET 3.5 Webspace automatisch in regelmäßigen Abständen eine Produktdatei im XML oder CSV-Format erzeugen lassen? Die Datei ist zum Abruf von diversen Preisvergleichsportalen gedacht. Ich möchte nicht ständig einen Button klicken müssen o.ä.. Mir ist bewusst, dass das keine ideale Vorgehensweise ist, aber brauche trotzdem eine Lösung. Wie könnte man das simpelsten umsetzen?
==============================
Wenn ichs wüsst', würd' ich nicht fragen!!! 😁
==============================
Hallo,
ich würde die Preisvergleichsportale nicht mit einem generierten XML füttern, sondern mit einem HtttpHandler, der das XML "on demand" generiert, wenn das Preisvergleichsportal darauf zugreift. Dann hast du das Problem mit der periodischen Generierung nicht, das im Web "out of the box" eh nicht geht. Nur mit einem Service der auf dem Server läuft.
MfG
Jürgen
ASP.NET Zone | gutsch-online | sharpcms | .NET Stammtisch Konstanz-Kreuzlingen | See# Party
Dachte ich mir schon fast. Einen Service kann ich natürlich nicht ohne Weiteres laufen lassen. Das Generieren der Datei "on Demand" ist gar nicht so doof. Eigentlich sehr simpel und immer aktuell.
Jetzt aber noch mla doof nachgefragt: Wie genau setze ich dazu an?
==============================
Wenn ichs wüsst', würd' ich nicht fragen!!! 😁
==============================
nimm ne ashx Datei und schreib in das context.Response Objekt deine Daten zurück.
EDIT Buchstabenverdreher bei der Erweiterung
"Das Problem kennen ist wichtiger, als die Lösung zu finden, denn die genaue Darstellung des Problems führt automatisch zur richtigen Lösung." Albert Einstein
Was ist denn eine asph-Datei? Sagt mir spontan leider nichts.
Ich benutze den Visual Web Developer 2008 Express, da hab ich eine solche Dateivorlabe auch nicht gefunden.
==============================
Wenn ichs wüsst', würd' ich nicht fragen!!! 😁
==============================
Jetzt aber noch mla doof nachgefragt: Wie genau setze ich dazu an? das stichwort HttpHandler hab ich oben schon genannt. schau auch mal hier: http://www.aspnetzone.de/search/SearchResults.aspx?q=httphandler&a=1 speziell die Beiträge von Peter dürften für dich interessant sein.
"asph" gibt es nicht. Wenn "aspx" gemeint war ist das eher nicht zu empfehlen. Steht ebenfalls in Peters Beiträgen (siehe Link)
MfG
Jürgen
ASP.NET Zone | gutsch-online | sharpcms | .NET Stammtisch Konstanz-Kreuzlingen | See# Party
hab da was für dich
http://www.aspcode.net/Creating-an-ASHX-handler-in-ASPNET.aspx
"Das Problem kennen ist wichtiger, als die Lösung zu finden, denn die genaue Darstellung des Problems führt automatisch zur richtigen Lösung." Albert Einstein
@LastGentleman:
Das ist eigentlich genau das was ich suche, aber nach dieser Beschreibung bekomme ich das einfach nicht hin.
==============================
Wenn ichs wüsst', würd' ich nicht fragen!!! 😁
==============================
Ich glaube mit der Beschreibung von Peter komm ich besser zurecht.
==============================
Wenn ichs wüsst', würd' ich nicht fragen!!! 😁
==============================
Nach längerer Zeit mal wieder etwas zu diesem Thema:
Das Problem mit der dynamischen Erzeugung einer XML oder CSV-Artikeldatei beschäftigt mich leider immer noch. Mein Problem liegt darin, dass die Webseite auf einem Shared-Server liegt und ich daher nicht einfach mal Server neustarten oder Änderungen in den Einstellungen des Servers vornehmen kann. Ich habe auch schon probiert die Funktionalität ins Innere einer .aspx-Datei zu packen, was auch tatsächlich eine Datei im XML-Format ausgespuckt hatte, nur leider erkennen viele Systeme die Endung einer aspx-Datei nicht als CSV und ich kann es lassen bevor ich angefangen habe.
Ich möchte eine standardisierte SHOPINFO.XML erstellen zur Weitergabe an Preisvergleichsportale. Diese ShopInfo soll sich immer dann aktualisieren, wenn sie abgefragt wird. Wie mache ich das?
==============================
Wenn ichs wüsst', würd' ich nicht fragen!!! 😁
==============================
Also wenn ich das richtig verstehe soll eine Datei von anderen Seiten gelesen werden können die neu erstellt wird wenn sie angefragt wird.
Dazu würde ich einen HttpHandler (IHttpHandler) nehmen wie oben auch schon angesprochen. Dazu erstellst du dir also z.B. eine Download.ashx.
Für CSV- oder XML-Datei kannst du einen einfachen Parameter in der URL verwenden.
z.B. Download.ashx?type=xml oder Download.ashx?type=csv
Dann musst du nur noch in der Methode ProcessRequest die Datei neu generieren und danach die Datei dann in HttpContext.Response schreiben.
Aber wo liegt der Unterschied dazu, wenn ich einfach in die Response einer stinknormalen aspx-Datei schreibe?
==============================
Wenn ichs wüsst', würd' ich nicht fragen!!! 😁
==============================
Du sparst dir den Overhead, den der Lebenszyklus eines von Page abgeleiteten Objekts (.aspx) erzeugt, und setzt stattdessen dort an, wo es richtig ist: es soll ja schließlich keine Seite angezeigt werden, sondern ein http-Request auf bestimmte Art und Weise behandelt werden. Dafür sind httphandler da.
LaTino
"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)