ASP.NET пользовательские 404 возврата 200 хорошо вместо 404 не найденный

Переменные w и h в функции img.onload находятся не в той же области, что и в функции getMeta(). Один из способов сделать это:

Fiddle: http://jsfiddle.net/ppanagi/28UES/2/

function getMeta(varA, varB) {
    if (typeof varB !== 'undefined') {
       alert(varA + ' width ' + varB + ' height');
    } else {
       var img = new Image();
       img.src = varA;
       img.onload = getMeta(this.width, this.height);
    }
}


getMeta("http://snook.ca/files/mootools_83_snookca.png");

79
задан Bobby Cannon 21 December 2008 в 15:41
поделиться

4 ответа

Решение:

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

protected override void Render(HtmlTextWriter writer)
{
    base.Render(writer);
    Response.StatusCode = 404;
}
[еще 1111] работа могла быть сделана для обнаружения точно, когда основная страница устанавливает состояние, но я оставлю это Вам.

<час>

Исходное Сообщение:

я смог заставить тестовое веб-приложение хорошо работать, хорошо оно, по крайней мере, отобразило пользовательскую ошибочную страницу и возвратило 404 кода статуса. Я не могу сказать Вам что не так с Вашим приложением, но я могу сказать Вам, что я сделал:

1) Отредактированный web.config для пользовательских ошибок:

<customErrors mode="On">
  <error statusCode="404" redirect="404.aspx"/>
</customErrors>

2) Добавленный 404.aspx страница и набор код статуса к 404.

public partial class _04 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.StatusCode = 404;
    }
}

Thats об этом, если я перехожу к какому-либо расширению страницы, которое обрабатывается Asp. Сеть и не существует, мой журнал скрипача ясно показывает 404, вот заголовок:

HTTP/1.1 404 Not Found
Server: Microsoft-IIS/5.1
Date: Sun, 07 Dec 2008 06:04:13 GMT
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 533

Теперь, если я перехожу к странице, которая не обрабатывается Asp. Сеть, как htm файл, пользовательская страница не показывает и 404, который настроен IIS, отображен.

Вот сообщение, которое вдается еще в некоторые подробности, которые могут быть полезны для Вас и Вашей проблемы, мой тест действительно делает перенаправление к новой странице, таким образом, URL требуемого файла в значительной степени потерян (кроме в строке запроса).

Google 404 и.NET Пользовательские Ошибочные Страницы

Ответ Шпиона Заголовка:

HTTP/1.1 404 Not Found
Date: Sun, 07 Dec 2008 06:21:20 GMT
72
ответ дан Community 6 November 2019 в 02:53
поделиться

После большого тестирования и поиска и устранения неисправностей кажется, что определенные поставщики услуг хостинга могут вмешаться в код возврата. Я смог обойти это путем применения "взлома" в содержании.

<%
// This code is required for host that do special 404 handling...
Response.Status = "404 Not Found";
Response.StatusCode = 404;
%>

Это позволит странице возвращать корректный код возврата несмотря ни на что.

7
ответ дан Bobby Cannon 6 November 2019 в 02:53
поделиться

Можно использовать ниже кода:

 Response.TrySkipIisCustomErrors = True
 Response.Status = "404 Not Found"
 Response.AddHeader("Location", "{your-path-to-your-404-page}")
0
ответ дан 24 November 2019 в 10:16
поделиться

У меня была аналогичная проблема. Я хочу показать настраиваемую страницу как 404 (это ASPX), и она отлично работала на localhost, но как только удаленный посетитель подключился, они получали общий IIS 404.

Решение. к этому нужно было добавить

Response.TrySkipIisCustomErrors = true;

Перед изменением Response.StatusCode.

Найдено у Рика Стрела http://www.west-wind.com/weblog/posts/745738.aspx

27
ответ дан 24 November 2019 в 10:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: