IIS Wildcard Mapping не работает для ASP.NET - PullRequest
4 голосов
/ 19 сентября 2008

Я установил сопоставление с подстановочными знаками в IIS 6, добавив «C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll» и убедившись, что «Убедитесь, что файл существует» не проверено: 1001 *

  • в каталоге сайтов в IIS
  • на сайте

Однако после iisreset при переходе на http://myserver/something.gif, я все равно получаю ошибку IIS 404, а не asp.net.

Я что-то пропустил?

Precisions:

  • это не для использования ASP.NET MVC
  • Я бы предпочел не использовать пользовательские страницы ошибок iis 404, поскольку у меня есть httpmodule для регистрации ошибок (это внутренний сайт с низким трафиком, поэтому снижение производительности подстановочных знаков не является проблемой;))

Ответы [ 3 ]

4 голосов
/ 19 сентября 2008

Вам необходимо добавить обработчик HTTP в вашу веб-конфигурацию для файлов gif:

  <system.web>
    <httpHandlers>
      <add path="*.gif" verb="GET,HEAD" type="System.Web.StaticFileHandler" validate="true"/>
    </httpHandlers>
  </system.web>

Это заставляет .Net обрабатывать файл, тогда вы получите ошибку .Net.

Ошибка сервера в «/» приложении.

Ресурс не найден. Описание: HTTP 404. Требуемый ресурс (или одна из его зависимостей) мог быть удален, изменилось его имя или временно недоступен. Пожалуйста, просмотрите следующий URL и убедитесь, что он написан правильно.

Запрошенный URL: /test.gif


Информация о версии: Microsoft .NET Framework Версия: 2.0.50727.1433; ASP.NET версия: 2.0.50727.1433

0 голосов
/ 19 сентября 2008

Вы не можете использовать сопоставление wilcard без использования маршрутизации ASP.net или URLrewriting или какого-либо механизма сопоставления URL.

Если вы хотите сделать 404, вы должны настроить его в web.config -> Custom errors.
Затем вы можете перенаправить на другие страницы, если хотите.

Новое в 3.5 SP1, вы устанавливаете RedirectMode в «responseRewrite», чтобы избежать перенаправления на пользовательскую страницу ошибки и оставляете URL в браузере без изменений.

Другим способом сделать это будет отлов ошибки в global.aspx и перенаправление. Пожалуйста, прокомментируйте ответ, если вам нужны дальнейшие инструкции.

0 голосов
/ 19 сентября 2008

Вы можете попробовать использовать пользовательские ошибки, чтобы сделать это. Зайдите в Custom Errors в свойствах вашего сайта и установите 404, чтобы он указывал на URL вашего сайта. Например, /404.aspx существует.

С aspnet_isapi вы хотите использовать HttpModule для обработки ваших подстановочных знаков. как http://urlrewriter.net/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...