ОК, это может показаться немного запутанным и сложным, так что терпите меня.
Мы написали структуру, которая позволяет нам определять дружественные URL-адреса. Если вы переходите по любому произвольному URL-адресу, IIS пытается отобразить ошибку 404 (или, в некоторых случаях, 403; 14 или 405). Однако IIS настроен так, что все, что связано с этими конкретными ошибками, отправляется в файл .aspx. Это позволяет нам реализовать HttpHandler для обработки запроса и выполнения чего-либо, что включает в себя поиск связанного шаблона и последующее выполнение всего, что с ним связано.
Теперь, это все работает в IIS 5 и 6 и, в некоторой степени, в IIS7 - но для одного улова, который происходит, когда вы публикуете форму.
Смотрите, когда вы публикуете форму на несуществующий URL, IIS говорит "ах, но этот URL не существует" и выдает ошибку 405 "метод не разрешен". Поскольку мы говорим IIS перенаправить эти ошибки на нашу страницу .aspx и, следовательно, обрабатывать их с помощью нашего HttpHandler, обычно это не проблема. Но с IIS7 вся информация POST пропала после перенаправления на 405. И поэтому вы больше не можете делать самые тривиальные вещи, связанные с формами.
Чтобы решить эту проблему, мы попытались использовать HttpModule, который сохраняет данные POST, но, по-видимому, не имеет инициализированного сеанса в нужное время (когда это необходимо). Мы также попытались использовать HttpModule для всех запросов, не только отсутствующие запросы, которые достигли 404/403; 14/405, но это означает, что такие вещи, как изображения, CSS, JS и т. Д. Обрабатываются .NET-кодом, что ужасно неэффективно. 1009 *
Что подводит меня к актуальному вопросу: кто-нибудь когда-либо сталкивался с этим, и есть ли у кого-нибудь совет или знать, что делать, чтобы все снова заработало? До сих пор кто-то предлагал использовать собственный модуль перезаписи URL-адреса Microsoft . Поможет ли это решить нашу проблему?
Спасибо.