Frage

Der Folgecode (läuft in ASP.Net 2.0) zeigt den Inhalt der angeforderten URL zweimal . Ich will es nur einmal den Inhalt der angeforderten URL angezeigt werden soll. Ich kann nicht herausfinden, was ich falsch mache. Die URL angefordert wird XML Rückkehr und wenn ich die URL direkt besuchen, es funktioniert gut.

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
byte[] postDataBytes = Encoding.UTF8.GetBytes(postData);
request.Method = "POST";
request.ContentType = "application/xml";
request.ContentLength = postDataBytes.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(postDataBytes, 0, postDataBytes.Length);
requestStream.Close();

// get response and write to console
response = (HttpWebResponse) request.GetResponse();
StreamReader responseReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
try {
   Response.Write(responseReader.ReadToEnd());
}
finally {
   responseReader.Close();
}
response.Close();
War es hilfreich?

Lösung 3

Ich fand das Problem. Es ist nicht mit dem obigen Code überhaupt, aber mit der Seite aufgerufen wird. Die Seite, die ich anrief wurde aus einer Klasse, deren Page_OnInit Verfahren enthalten die folgende Zeile geerbt: „MyBase.OnLoad (e)“, die die Page_OnLoad Methode verursacht zweimal ausgeführt werden. Offensichtlich sollte es MyBase.OnInit (e) anstelle wurde. Ich habe fange sie nicht, denn wenn ich die Seite direkt testete ich vorübergehend das Erbe aus der Klasse entfernen musste wegen eines anderen Code, der verhindert hat mich direkt von Testen der Seite hätte.

werde ich jetzt auf meiner „Dunce“ Hut auf und ziehen Sie sich in die Ecke für eine Auszeit. Trotzdem danke für die Hilfe.

Andere Tipps

Wo ist der Code wird ausgeführt von? Dies könnte völlig irrelevant sein, aber haben Sie diesen Artikel gesehen ..?

http://ddkonline.blogspot.com /2008/02/aspnet-double-postback-bug-strikes.html

Der Code sieht gut aus, so dass ich glaube nicht, das Problem ist ... aber was würde ich vorschlagen, ist die folgende:

1) Vielleicht ist der Fehler am anderen Ende der URL ist ... so versucht Google treffen und sehen, ob der zurückgegebene Inhalt gut ist oder nicht.

2) Setzen Sie einen Haltepunkt an dem „responseReader.ReadToEnd ()“ vor Ort und sehen, ob das, was von dort kommt ist gut.

3) Wenn dieser Code oben in einer ASPX-Seite ist ... machen Sie sicher, rufen "Response.End ();" nachdem du bist letzte Zeile Code? (Nicht "resposne.close ()", aber "Response.End ()").

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top