سؤال

اتبع التعليمات البرمجية (تعمل في ASP.Net 2.0) يعرض محتويات عنوان URL المطلوب مرتين.أنا فقط أريد أن عرض محتويات عنوان URL المطلوب مرة واحدة.أنا لا يمكن معرفة ما أفعله خطأ.URL المطلوب هو العودة XML و لو زيارة عنوان URL مباشرة, أنه يعمل بشكل جيد.

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();
هل كانت مفيدة؟

المحلول 3

وجدت المشكلة.ليس مع رمز أعلاه في كل شيء ، ولكن مع الصفحة التي تسمى.الصفحة كنت أتصل كانت موروثة من الفئة التي Page_OnInit طريقة الوارد السطر التالي:"MyBase.OnLoad(هـ)" الذي تسبب في Page_OnLoad طريقة تنفيذها مرتين.من الواضح أنه ينبغي أن يكون MyBase.OnInit(هـ) بدلا من ذلك.لم أتمكن من ذلك لأنه عندما اختبرت الصفحة مباشرة كان مؤقتا إزالة الميراث من الدرجة بسبب بعض التعليمات البرمجية الأخرى التي قد منعتني من اختبار الصفحة مباشرة.

أنا الآن وضعت على بلدي "غبي" قبعة والتراجع إلى الزاوية الوقت.على أي حال شكرا على المساعدة.

نصائح أخرى

حيث أن البرمجية التي يتم تشغيلها من ؟ هذا قد يكون غير ذي صلة تماما ولكن هل رأيت هذا المقال..?

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

التعليمات البرمجية الخاصة بك تبدو جيدة ، لذلك أنا لا أعتقد أن المشكلة هي هناك...ولكن ما أود أن أقترح ما يلي:

1) ربما خطأ في عنوان URL الآخر...وذلك في محاولة ضرب جوجل وانظر إذا عاد المحتوى هو جيد أم لا.

2) ضع نقطة توقف عند "responseReader.ReadToEnd()" بقعة ، ومعرفة ما إذا كان ما يخرج من هناك.

3) إذا كان هذا الكود أعلاه في صفحة ASPX...هل أنت مع التأكد من الاتصال "استجابة.النهاية();" بعد السطر الأخير من الكود ؟ (وليس "resposne.close()", ولكن "استجابة.النهاية()").

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top