Asp.net / webrequest

Liebe/-r Experte/-in,

ich bin eine aspx-Seite per webrequest.getresponse ein, also die Seite default.aspx gibt bspw. das Ergebnis von meineberechnung.aspx aus (gleiches Projekt, gleicher Ordner, gleicher Server).

Hierbei gehen allerdings die Cookies und Sessions verloren.
Irgendwo habe ich gelesen, dass man wohl die aktuellen Sessions / Cookies an den neuen Request weiterreichen kann.

Der Code sieht so aus:

Dim req As Net.HttpWebRequest
req = Net.WebRequest.Create("http://localhost…")
req.CookieContainer.Add(request.cookies)
…req.GetResponse()…

Beim CookieContainer.Add erhalten ich eine Fehlermeldung, dass die Anzahl der Argumente nicht stimmt. Eigentlich wird hier aber eine httpcookiecolletion erwartet und übergeben - also großes Fragezeichen.

Wo liegt hier mein Denkfehler?

PS: Der Weg die Parameter per URL zu übergeben (statt Cookies/Session) steht nicht zur Diskussion.

Vielen Dank und schöne Weihnachten.

Gruss,
Andreas Osswald

Hallo,

ich bin mir nicht sicher ob ich Sie richtig verstanden habe.

Auf der Seite default.aspx kann man Daten eingeben, und die Seite meineberechnung.aspx soll mit diesen dann eine Berechnung durchführen?

=> Hierfür würde sich generell ein XML-Webdienst anbieten, wenn Sie mit dem VisualStudio arbeiten, bedeutet der Aufruf des Webdienstes absolut keine Mehrarbeit.

=> Die Sessiondaten sollten nicht verloren gehen, wenn Sie auf dem selben Sever bleiben. Allerdings können Sie auch lediglich die Session-ID im Adresslink übertragen, dann wird kein Cookie benötigt

Hallo,
Cookies könnten beim Client ausgeschaltet sein,
Ich würde mal im C:\Dokumente …\Username\Cookies Verzeichnis nachsehen, ob was angelegt wird und auf der Zielseite ein Cookie erstellen und vergleichen.
Session-Variablen können verloren gehen, wenn IIS mehrere Threads startet und der Prozess für die Session-State nicht läuft:
http://classicasp.aspfaq.com/general/why-won-t-my-se…
Google Suche: session variable missing IIS process
Zitat „Make sure you haven’t disabled session state in Internet Services Manager, and that it has an appropriate timeout value“

frohes Fest

Hi Andreas,
schau dir mal mein bsp. an.
Wenn du noch fragen hast schreibe mir eine PM.

'erstellen
Dim r As Net.HttpWebRequest
r = Net.WebRequest.Create("http://www.google.de/search?q=hallo")

'cookie Container erstellen
Dim ck As New Net.CookieContainer

'cookie erzeugen und zuweisen
Dim ckk As New Net.Cookie(„name“, „wert“, „/“, „localhost“)
ck.Add(ckk)

r.CookieContainer = ck

'eigentlcih müsste das auch peer session gehen ohne cookies.
Session(„deineSession“) = „Hi“
'oder
Dim x As String = HttpContext.Current.Session(„deineSession“)

Gruß

Hallo Andreas,

entschuldige bitte die späte Antwort, ich hatte vergessen, dass ich die Expertenanfrage vor Weihnachten aktiviert hatte und war dann drei Wochen (körperlich) weg … (geistig offensichtlich ein wenig länger)

aber nun zu deinem Problem: Add erwartet meines Wissens nach einen Cookie, also die Cookies entweder mittels einer foreach hinzufügen oder die SetCookies Methode probieren.

hoffe ich konnte damit helfen

lg
Maria

Der Code sieht so aus:

Dim req As Net.HttpWebRequest
req = Net.WebRequest.Create("http://localhost…")
req.CookieContainer.Add(request.cookies)
…req.GetResponse()…

Beim CookieContainer.Add erhalten ich eine Fehlermeldung, dass
die Anzahl der Argumente nicht stimmt. Eigentlich wird hier
aber eine httpcookiecolletion erwartet und übergeben kies/Session) steht nicht zur Diskussion.

Besten Dank für die Antworten.
Das Problem konnte mitlerweile über einen Cookie-Umweg gelöst werden.