Имея странную проблему сегодня. Мне удалось устранить другие проблемы. Моя страница ASP содержит элементы управления NO (поэтому нет пустого URL-адреса, который может вызвать проблему). Сама программа, из кода VB позади, получает двоичные данные из базы данных и делает Response.BinaryWrite (imagedata) на странице. Когда я запускаю его в Chrome или Firefox, все работает отлично. Когда я запускаю IE, после того, как мой код завершит выполнение, он снова запустит Page_Init снова и Page_Load, как будто загружается в первый раз снова и снова. Значение обратной передачи всегда ложно, поэтому вокруг него нет никакого способа. Здесь нет кода жереха (как вы можете видеть, ничего интересного) ...Page_Init и Page_Load выполняет дважды ASP и VB.NET только в IE .. почему?
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="pagenamehere.aspx.vb" Inherits="x.x.x.x.y" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Test</title>
</head>
<body>
</body>
</html>
И Page_Init и подпись Page_Load является
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
'checks database connection string and handles error if there is one
End Sub
Private Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
'checks user is authenticated to view the image and if so, does the binarywrite
End Sub
Я попытался изменить autoeventwriteup к истине и с с ручками Me.Load и т. д., но без эффекта. Я также пробовал проверять объект Sender, но при первом переходе страницы и нежелательном втором загрузке страницы ничего не меняется.
Наконец, страница загружается во второй раз сразу после следующего кода
Response.Clear()
Response.ClearContent()
Response.ClearHeaders()
Response.Buffer = True
Response.ContentType = "image/vnd.djvu"
Response.AddHeader("Content-Disposition", "inline;filename=temp.djvu")
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Response.BinaryWrite(imagedata)
Response.Flush()
Response.Close()
Сразу после Response.Close будет вернуться к Page_Init. Я попробовал response.end, но это не имеет значения. Я попытался удалить заголовок, информацию о кеше и т. Д., Но не повезло. Пожалуйста помоги!
Благодаря
Может быть это вызывает проблемы http://www.sitepoint.com/ie-contype-request/ – jbl
попробуйте запустить скрипач и убедитесь, что из-за аутентификации страница дважды вызывается. Если это не аутентификация, тогда вы по-прежнему узнаете, почему сделан второй запрос «get» – NoviceProgrammer
@jbl. Я считаю, что вы можете что-то сказать. У меня теперь есть временное исправление, выполняя следующие действия: 1) каждый раз проверяя содержимое заголовков. При первом запуске кода 7, во второй раз, когда код работает, есть 6. Тот, который исчезает во второй раз, является «Accept-Language».2) Получите счетчик заголовков (7), и если он меньше 7, то это второй раз, когда код запускается 3) только записывать в журнал базы данных, если headers.keys.count <7. Проблема теперь в том, что я хочу улучшить код и сделать его менее жестко закодированным. Пожалуйста, посоветуйте далее пример vb.net, если это возможно? спасибо! – user2965112