2010-08-23 6 views
2

net webforms приложение, которое представляет собой новую версию старого интернет-магазина. У меня есть много внешних ссылок из Интернета, которые указывают на определенную страницу категории: http://www.example.com/category1.html, путь к этой категории в новой настройке похож на: http://www.example.com/category.aspx?id=42.Проблема ASP.NET и HTTP 404 (проблема IIS)

У меня есть страница Category.aspx для обработки ошибок и перенаправления на пользовательскую страницу, регистрации ошибки и перенаправления на мою первую страницу.

У меня настроить Global.asax Application_Error сделать то же

Я настроил Web.config, с пользовательскими ошибками ретранслировать 404 с использованием той же концепции, что и выше.

Все работает так, как должно быть в Visual Studio (сборка на веб-сервере), когда я публикую его на своем веб-хостинге, он не работает, говорят, что он работает в интегрированном режиме ... у кого есть решение этого?

+0

И если вы хотите получить доступ только к категории.aspx, это сработает? Записывает ли он ошибку? Является ли HTTP 404 на основе вашего перенаправления или он запущен IIS? Веб-приложение в IIS может быть настроено неправильно, так что http: //www.example.com/... не указывает на ваше приложение. –

ответ

0

IIS работает в интегрированном режиме, поэтому я наконец узнал, что я не мог справиться с этим так, как я это сделал, я написал httphandler, зарегистрировал его в файле web.config и назначил его для перехвата всех вызовов, сделанных в * .html файлы. Все, что мне нужно было сделать, - это перенаправить на исходную страницу.

1

С помощью встроенного веб-сервера каждый запрос обрабатывается так, как если бы он был страницей asp.net, поэтому ваш web.config всегда используется в этом случае.

В IIS однако .html не обрабатывается asp.net, а статическим обработчиком файлов, поэтому файл web.config игнорируется (хотя IIS7 просматривает файл web.config для некоторых вещей, но это не относится к вашему проблема)

Таким образом, вы должны либо иметь .html, обрабатываемый asp.net (установить расширение .html, которое будет обрабатываться той же DLL, что и страницы .aspx в IIS), либо вы должны установить страницу ошибок в IIS (а не в вашем web.config).

Смежные вопросы