asp.net Загрузка страницы дважды при установлении основного соединения - PullRequest
1 голос
/ 19 января 2009

У меня есть страница aspx, которая, кажется, загружается дважды при вводе URL-адреса страницы.

В событии загрузки этой страницы я устанавливаю соединение с сервером для получения документа, а затем выводю загруженные байты в выходной поток страницы.

Это вызывает двойную загрузку страницы по какой-то странной причине. Если я жестко закодирую байтовый массив, не устанавливая это соединение, страница загружается один раз, и все в порядке.

Вот методы, используемые для извлечения внешнего документа. Может быть, вы можете увидеть то, что я не могу.

public static byte[] GetDocument(string url)
        {
            HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
            HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
            Stream stream = myHttpWebResponse.GetResponseStream();

            byte[] _Data = StreamToBytes(stream);

            return _Data;
        }

        private static byte[] StreamToBytes(System.IO.Stream theStream)
        {
            if (theStream == null)
                throw new ArgumentException("URL null.");

            int bytesRead = 0;
            byte[] buffer = new byte[8096];
            MemoryStream bufferStream = new MemoryStream();

            try
            {
                do
                {
                    bytesRead = theStream.Read(buffer, 0, 8096);
                    bufferStream.Write(buffer, 0, bytesRead);

                } while (bytesRead > 0);

            }
            finally
            {
                bufferStream.Flush();
                theStream.Close();
                theStream.Dispose();
            }

            return bufferStream.ToArray();
        }

Ответы [ 2 ]

3 голосов
/ 19 января 2009

Вероятный виновник имеет директиву страницы AutoEventWireup = "true" в дополнение к OnInit (), имеющему this.Page_Load + = Page_Load;

Auto Event Wireup делает то, на что это похоже. Если существует метод, который следует соглашению об именах, событие автоматически подключается.

Вы также часто видите это на обработчиках кнопок. Обработчик кнопки будет установлен специально, и на странице также будет создан обработчик кнопки, если имя соответствует соглашению buttonname _OnClick (sender, args)

2 голосов
/ 19 января 2009

Подобные проблемы часто возникают из-за тегов img с пустым src ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...