powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как правильно реализовать 404 ошибку
20 сообщений из 70, страница 3 из 3
Как правильно реализовать 404 ошибку
    #38732643
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНа том же Power Shell можно написать скрипт публикации, что будет в процессе деплоя считывать "На сервере есть информация о том, где установлено приложение". и трансформировать конфиг.

Так и я о том же, скрипт деплоя может легко решать эту задачу. Поставлять путь виртуальной директории в трансформации. Задачка для школьника.

А на счёт того, почему «If responseMode is set to ExecuteURL, the path value has to be a server relative URL.», так это легко объяснимо: допустим в виртуальные папки деплоятся несколько приложений, а страницы ошибок для них одни и те же. Так в общем-то оно и есть по умолчанию. Обработка HTTP ошибок должна конфигурироваться в конфиге, но никак в Global.asax, -- это какое-то унылое рукожопство.
...
Рейтинг: 0 / 0
Как правильно реализовать 404 ошибку
    #38732645
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttКонфиг нужен, чтобы конфигурировать приложение.Если бы в конфиге были только локальные настройки, тогда да. Но в существующем web.config помойка. Каждый гадит туда, кому не лень. Это просто капец какой-то. Там масса информации, которая относится к конфигурированию постольку-поскольку. И его деплоить надо с каждой новой версией, поэтому настройки админам каждый раз заново прописывать?
...
Рейтинг: 0 / 0
Как правильно реализовать 404 ошибку
    #38732646
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЯ обрадовался, что найдено нормальное решение, но не тут-то было...

Просто научись пользоваться конфигами и управлять процессом деплоя.
Делов-то?
...
Рейтинг: 0 / 0
Как правильно реализовать 404 ошибку
    #38732651
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КhVosttКонфиг нужен, чтобы конфигурировать приложение.Если бы в конфиге были только локальные настройки, тогда да. Но в существующем web.config помойка.Атрибут configSource может быть применён к большинству секций конфигурационного файла. Разложи помойку на части.
...
Рейтинг: 0 / 0
Как правильно реализовать 404 ошибку
    #38732652
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt... скрипт деплоя может легко решать эту задачу. Поставлять путь виртуальной директории в трансформации. Задачка для школьника.Зачем мне эти педали? Щас всё брошу и буду писать скрипты, ага... XCopy deploy + отдельное конфигурирование рулит.
hVosttА на счёт того, почему «If responseMode is set to ExecuteURL, the path value has to be a server relative URL.», так это легко объяснимо: допустим в виртуальные папки деплоятся несколько приложений, а страницы ошибок для них одни и те же.Я уж сам решу, где ставить тильду, а где не ставить. Главное чтобы она работала.
hVosttТак в общем-то оно и есть по умолчанию. Обработка HTTP ошибок должна конфигурироваться в конфиге, но никак в Global.asax, -- это какое-то унылое рукожопство.Админы будут конфигурировать обработку ошибок в программе? Может им ещё исходники дать, чтобы они try...catch переставили, как им больше нравится. У ха ха...
...
Рейтинг: 0 / 0
Как правильно реализовать 404 ошибку
    #38732654
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЕсли бы в конфиге были только локальные настройки, тогда да. Но в существующем web.config помойка. Каждый гадит туда, кому не лень. Это просто капец какой-то. Там масса информации, которая относится к конфигурированию постольку-поскольку. И его деплоить надо с каждой новой версией, поэтому настройки админам каждый раз заново прописывать?

Да при чём тут твоя помойка??

Вот пример простейшей трансформации для Release конфигурации:

Web.Release.config

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
<?xml version="1.0"?>

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <!-- Меняем строку соединения к БД -->
  <connectionStrings>
    <add name="PrimaryConnection"
      connectionString="..........................................."
      xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
  </connectionStrings>

  <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug)" />
  </system.web>

  <appSettings>
    <!-- Меняем основную почту администратора -->
    <add key="Mailer.Administrator" value="admin@domain.ru" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
  </appSettings>
  
  <system.webServer>
    <!-- Устанавливаем страницы ошибок для пользователя -->
    <httpErrors xdt:Transform="Insert" errorMode="DetailedLocalOnly" existingResponse="Replace" defaultResponseMode="ExecuteURL">
      <remove statusCode="403" subStatusCode="-1" />
      <remove statusCode="404" subStatusCode="-1" />
      <remove statusCode="500" subStatusCode="-1" />
      <error statusCode="403" path="/Error/Forbidden" responseMode="ExecuteURL" />
      <error statusCode="404" path="/Error/NotFound" responseMode="ExecuteURL" />
      <error statusCode="500" path="/Error/InternalServerError" responseMode="ExecuteURL" />
    </httpErrors>

     <!-- Делаем реврайт для домена с WWW на без WWW -->
     <rewrite xdt:Transform="Insert">
      <rules>
        <rule name="SEO" stopProcessing="true">
          <match url=".*" ignoreCase="true" />
          <conditions>
            <add input="{HTTP_HOST}" pattern="^domain\.ru$" negate="true" />
          </conditions>
          <action type="Redirect" url="http://domain.ru/{R:0}" redirectType="Permanent" />
        </rule>

     <!-- Убираем слеши в конце URL -->
        <rule name="Remove trailing slash" stopProcessing="true">
          <match url="(.*)/$" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Redirect" redirectType="Permanent" url="{R:1}" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>

</configuration>
...
Рейтинг: 0 / 0
Как правильно реализовать 404 ошибку
    #38732655
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Если бы в конфиге были только локальные настройки, тогда да. Но в существующем web.config помойка.Атрибут configSource может быть применён к большинству секций конфигурационного файла. Разложи помойку на части.Да, думал об этом. Буду ещё думать. Возможно, это решит проблему.
...
Рейтинг: 0 / 0
Как правильно реализовать 404 ошибку
    #38732658
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttВот пример простейшей трансформации для Release конфигурации:а525

Да знаю я про неё, использую где надо. Но не нужна она мне в этом случае. Требуется решение без трансформации конфига.
...
Рейтинг: 0 / 0
Как правильно реализовать 404 ошибку
    #38732661
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЯ уж сам решу, где ставить тильду, а где не ставить. Главное чтобы она работала.

Фейспалм...

Алексей КАдмины будут конфигурировать обработку ошибок в программе?

Речь не идёт об ошибках в программе, а о страницах ошибок. Суть в том, что обработав ошибку программа возвращает код ошибки (404, 500, 503...), а дальше уже не забота программы, т.е. это выходит за пределы её ответственности.
...
Рейтинг: 0 / 0
Как правильно реализовать 404 ошибку
    #38732673
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КЯ уж сам решу, где ставить тильду, а где не ставить. Главное чтобы она работала.
Фейспалм...Фейснапалм...
hVosttАлексей КАдмины будут конфигурировать обработку ошибок в программе?

Речь не идёт об ошибках в программе, а о страницах ошибок. Суть в том, что обработав ошибку программа возвращает код ошибки (404, 500, 503...), а дальше уже не забота программы, т.е. это выходит за пределы её ответственности.И в чью же ответственность оно входит, если не секрет? Местные админы сами будут странички для ошибок писать? Мда...

Способ отображения ошибки на экране входит в ответственность моей программы.
...
Рейтинг: 0 / 0
Как правильно реализовать 404 ошибку
    #38732679
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КИ в чью же ответственность оно входит, если не секрет? Местные админы сами будут странички для ошибок писать? Мда...

Способ отображения ошибки на экране входит в ответственность моей программы.

Если до тебя до сих пор о-о-очень туго доходит, мозг ты включать не хочешь, то вот тебе ситуация.

Возникает ошибка в самом Global.asax, приложение не в состоянии обработать ошибку, так как тупо падает. Кто и как по-твоему должен обработать ошибку?

Наезды на предмет, во-о-от.. дескать асп.нет уг, обычно связаны с банальным тугоумием и непониманием принципов его работы. Каждый раз находится индивидуум, которому начинает казаться, что асп.нет писали дибилы, и по тупости они забыли добавить обработку тильды. Проблемы с ЧСВ не иначе.
...
Рейтинг: 0 / 0
Как правильно реализовать 404 ошибку
    #38732686
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt... мозг ты включать не хочешь,Конечно - пятница, вечер. :-)
hVosttто вот тебе ситуация.

Возникает ошибка в самом Global.asax, приложение не в состоянии обработать ошибку, так как тупо падает. Кто и как по-твоему должен обработать ошибку?Никто. Так же как никто не обработает ошибку, возникшую в этом же месте в системной библиотеке, которая написана не нами. Ещё замечания будут?
hVosttНаезды на предмет, во-о-от.. дескать асп.нет уг, обычно связаны с банальным тугоумием и непониманием принципов его работы. Каждый раз находится индивидуум, которому начинает казаться, что асп.нет писали дибилы, и по тупости они забыли добавить обработку тильды. Проблемы с ЧСВ не иначе.Это маркетинговый ход для привлечения аудитории, а не то что ты подумал. :-)
...
Рейтинг: 0 / 0
Как правильно реализовать 404 ошибку
    #38732691
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей ККонечно - пятница, вечер. :-)

Ну я так и подумал


Алексей КНикто. Так же как никто не обработает ошибку, возникшую в этом же месте в системной библиотеке, которая написана не нами. Ещё замечания будут?

httpErrors -- уровень обработки ошибок вне контекста приложения. вне этого контекста тильда работать не будет, так нет никакого приложения и его папки, это даёт гарантии, что при непредвиденных ошибках пользователь увидит то, что требуется. а твоя проблема с указанием пути при деплое детская и надуманная. xcopy это детский сад и даже не смешно, если уж говорить о массовом развёртывании.
...
Рейтинг: 0 / 0
Как правильно реализовать 404 ошибку
    #38732693
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostthttpErrors -- уровень обработки ошибок вне контекста приложения. вне этого контекста тильда работать не будет, так нет никакого приложения и его папки, это даёт гарантии, что при непредвиденных ошибках пользователь увидит то, что требуется.Я вижу, что это решение мне не подходит, мне этого достаточно. Причина проблемы меня не интересует. Мне важен результат, а его нет.

hVosttа твоя проблема с указанием пути при деплое детская и надуманная. xcopy это детский сад и даже не смешно, если уж говорить о массовом развёртывании.xcopy - это проверенное временем решение, имеющее в том числе философские основы.
...
Рейтинг: 0 / 0
Как правильно реализовать 404 ошибку
    #38732714
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУпропущено...

Это совершенно стандартная ситуация. Стандартней некуда.
Повторюсь: "На сервере есть информация о том, где установлено приложение".
Так лучше воспринимается?
На каком сервере? Сервера еще нет никакого, есть твоё приложение и всё. Клиент только получил твоё приложение. Где сервер? Какой сервер?

Алексей КМСУКстати, можно еще такой подход использовать. При первом запуске модифицировать web.config под себя. Вот рецепт http://codearticles.ru/articles/444 Да я вообще думаю, что локальные настройки сервера, вроде connectionString, не надо хранить в web.config. Так деплоить удобнее.
В мемориз! (с)
...
Рейтинг: 0 / 0
Как правильно реализовать 404 ошибку
    #38732717
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМне важен результат, а его нет.

Если сидеть и ныть у моря, рыбка не поймается.


Алексей Кxcopy - это проверенное временем решение, имеющее в том числе философские основы.



И зачем было говорить

Алексей КА если таких мест установок 10, 20, 500?

Ясно же, что ты никогда даже с 10-ю установками дела не имел, не говоря уже о каких-то волшебных 500... Кого обмануть-то хотел? Или хороший понт дороже денег?
...
Рейтинг: 0 / 0
Как правильно реализовать 404 ошибку
    #38732718
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КДелать под каждый деплой отдельный билд не собираюсь.

При чём тут билд? Страницы ошибок классически всегда настраивались в конфиге, так как требуется показывать разные страницы для пользователей, для тестеров и разработчика.
Очень грамотное замечание. Зачем тупость, проблемы с деплоем и "неудобность" распространения мешать с платформой ASP.NET. Бред ведь.
...
Рейтинг: 0 / 0
Как правильно реализовать 404 ошибку
    #38732727
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КhVosttКонфиг нужен, чтобы конфигурировать приложение.Если бы в конфиге были только локальные настройки, тогда да. Но в существующем web.config помойка. Каждый гадит туда, кому не лень.
По аналогии: code behing и mvvm в wpf зло, каждый гадит туда, кому не лень.

P.S. Друзья, спокуха. Это просто винформзятнику дали веба покурить, ломки. Скоро попустит и будет благоденствие. А пока даешь еще попкорну!
...
Рейтинг: 0 / 0
Как правильно реализовать 404 ошибку
    #38732735
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУP.S. Друзья, спокуха. Это просто винформзятнику дали веба покурить, ломки. Скоро попустит и будет благоденствие. А пока даешь еще попкорну!

Пятница движется к своему исходу, больше травы, больше!
...
Рейтинг: 0 / 0
Как правильно реализовать 404 ошибку
    #38732738
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУP.S. Друзья, спокуха. Это просто винформзятнику дали веба покурить, ломки. Скоро попустит и будет благоденствие. А пока даешь еще попкорну!
Пятница движется к своему исходу, больше травы, больше!

Web.config от Алёши


Не проходите мимо :)
...
Рейтинг: 0 / 0
20 сообщений из 70, страница 3 из 3
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как правильно реализовать 404 ошибку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]