Ответ 1
Это может быть много. У меня была эта проблема сегодня, потому что .NET не был повторно инициализирован после установки IIS (aspnet_regiis -i -enable
или эквивалентного).
Почему, когда я обращаюсь к aspx (например, http://www.example.com/foo.aspx - не реальный сайт) через IE6, я получаю ошибку 404 (т.е., "Страница не может быть найдена" ) в IIS6
У меня есть сценарии для веб-сайта, и я попытался с включенными исполняемыми файлами.
Вот полная ошибка:
The page cannot be found
The page you are looking for might have been removed, had its name changed, or
is temporarily unavailable.
------------------------------------------------------------------------------
Please try the following:
Make sure that the Web site address displayed in the address bar of your
browser is spelled and formatted correctly.
If you reached this page by clicking a link, contact the Web site
administrator to alert them that the link is incorrectly formatted.
Click the Back button to try another link.
HTTP Error 404 - File or directory not found.
Internet Information Services (IIS)
------------------------------------------------------------------------------
Technical Information (for support personnel)
Go to Microsoft Product Support Services and perform a title search for the
words HTTP and 404.
Open IIS Help, which is accessible in IIS Manager (inetmgr), and search for
topics titled Web Site Setup, Common Administrative Tasks, and About Custom
Error Messages.
Я могу получить Default.htm в том же каталоге, поэтому я знаю, что путь правильный. Я открыл его для всех (временно), поэтому я знаю, что права прав.
Это может быть много. У меня была эта проблема сегодня, потому что .NET не был повторно инициализирован после установки IIS (aspnet_regiis -i -enable
или эквивалентного).
Убедитесь, что анонимный пользователь, под которым работает сайт, имеет доступ для чтения к файлу foo.aspx.
IIS6 и более поздние версии используют ответ 404, тем самым не позволяя злоумышленнику узнать, существует ли такой файл.
Мне просто удалось найти другого виновника этой проблемы. Моя страница foo.aspx
ссылалась на определенную главную страницу с директивой <%@ Register %>
для пользовательского элемента управления, которого не было. Удаление ссылки на несуществующее пользовательское управление вызвало мой foo.aspx
для загрузки вместо 404.
Я нашел решение здесь. Настоящий улов использовал это:
Response.TrySkipIisCustomErrors = true;
Сайт указывает на другой каталог, где страница отсутствует.
Это могут быть разрешения, однако я бы подумал, что вы получите ошибку доступа.
Я предполагаю, что вы используете IIS.
Убедитесь, что www.example.com отправляется на сайт, который, по вашему мнению, есть.
Если вы размещаете несколько сайтов на одном IP-адресе, используя заголовки хоста, вы можете дважды проверить, что имя, которое вы используете, находится на сайте, который, по вашему мнению, есть.
Рэй и Джо, вероятно, есть. Чтобы обслуживать любой тип файла, IIS должен иметь для него сопоставление. Файлы Aspx требуют, чтобы они были сопоставлены с dll AspNet ISAPI, к которым обычно относится установка .Net. Если вы устанавливаете IIS после .Net(и я уверен, что есть другие ситуации), вы должны инициировать это самостоятельно, запустив aspnet_regiis.
АЛЬТЕРНАТИВНОЕ РЕШЕНИЕ (такая же ошибка, возможно, другая причина).
Я установил Visual Studio 2008 Pro без SQL Express, и это вызвало эту же ошибку. Переустановка VS2008 с включенным sql express, похоже, исправила проблему, или, возможно, установка приняла другие меры. Я попытался зарегистрировать ASP.net несколько раз раньше, но не повезло, но это определенно самая вероятная причина. Просто отправляйте мой опыт тем, кто тянет их волосы, как я был.
Спасибо
Если вы зарегистрируете версию IIS.NET 4, вы можете обнаружить, что она захватила регистрацию расширения aspx. Если ASP.NET v4 запрещен, то возвращается 404
У меня была эта проблема, когда некоторые клиенты сообщали о 404.0, а некоторые не имели проблемы вообще (на той же странице). Мне удалось перейти на любую из страниц без каких-либо проблем с моей машины. Некоторые клиенты будут обновляться, и это исчезнет. Я использую .Net 4.5.2 и IIS 7.5.
Посмотрев файл журнала IIS, я увижу:
sc-status sc-substatus sc-win32-status
404 0 2
sc-status.sc-substatus: 404.0 - не найдено
sc-win32-status: 2 - ERROR_FILE_NOT_FOUND
https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx
https://en.wikipedia.org/wiki/HTTP_404
Я обнаружил, что проблема заключалась в том, что я развернул новую версию веб-сайта, на которой на старой версии веб-сайта была установлена RouteConfig.cs/FriendlyUrlSetting, создав проект с использованием шаблона веб-форм. Новая версия была создана с использованием пустого шаблона. Так очевидно для меня сейчас.. нет маршрутизации URL. У клиентов была проблема с кешем с определенными страницами на их машине (без расширения .aspx), и с их четкими данными браузера в конечном итоге была устранена проблема.
У меня возникла эта проблема, когда я попытался использовать другой диск для размещения моих приложений. Я переместил их в папку wwwroot, потому что он работал там, и мне не приходило в голову выяснить, почему он не работает на диске E: \.
У меня не было bin\roslyn компилятора. Добавим, что все работало нормально.