asp.net在进行底层连接时加载两次页面

时间:2009-01-18 22:51:22

标签: c# asp.net

当我将Url输入到页面时,我有一个aspx页面似乎加载了两次。

在此页面的加载事件中,我正在连接服务器以检索文档,然后将下载的字节输出到页面的输出流。

由于某些奇怪的原因导致页面加载两次。如果我在没有建立连接的情况下对字节数组进行硬编码,则页面加载一次,一切都很好。

以下是用于检索外部文档的方法。也许你可以看到我做不到的东西。

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 个答案:

答案 0 :(得分:3)

可能的罪魁祸首是除了OnInit()之外还有 AutoEventWireup =“true”的页面指令.Page_Load + = Page_Load;

Auto Event Wireup听起来像是听起来像。如果存在遵循命名约定的方法,则事件将自动连接。

您还经常在按钮处理程序上看到这一点。按钮处理程序将专门设置,如果名称遵循约定按钮名 _OnClick(sender,args),页面也将创建按钮处理程序

答案 1 :(得分:2)

这类问题经常发生,因为img标签有空的src ......