Я работаю над сайтом, который запрограммирован на C # .net. Он использует CMS под названием ADX Studio (решение, которое предшествовало моему времени там), который предоставляет краткую форму перезаписи URL (насколько я могу сказать, это работает, назначая страницу aspx в качестве обработчика 404 по умолчанию в IIS). * * 1003
У меня есть веб-форма, которая живет по переписанному URL. Я отредактировал его так, чтобы действие HTML-формы указывало на переписанный URL-адрес:
var u = new Uri(Request.RawUrl.Split(new char[1] { ';' }).Last());
userAdminForm.Action = u.PathAndQuery;
(отчасти уродливо, но работает исходя из того, что Request.RawUrl
есть на этих переписанных URL).
«Красивый» URL выглядит примерно так:
http://www.site.com/admin/user/edit/
В моем окне разработки (Windows XP / IIS 5), когда я первоначально пытался отправить обратно по URL-адресам, я получил ошибку HTTP 405. Я обошел это, добавив отображение сценария, чтобы Aspnet_isapi.dll обрабатывал все (*) запросы . И все отлично работает на моей машине разработки.
Я только что отправил свои изменения на работающий сервер (Windows Server 2003 R2 и IIS 6), и сообщение молча провалилось. Страница обновляется, но вся моя логика (из пути IsPostBack в коде) не попадает в цель. Ошибки не отображаются, просто не работает.
Если я удаляю свой код, устанавливающий .Action формы, тогда работает обратная передача, но она отправляет на некрасивый URL-адрес, соответствующий физическому расположению файла aspx, а не моей странице.
Мне не хватает простого способа заставить это работать? Я не хочу переключать метод перезаписи URL или что-либо еще, поскольку это большой устаревший сайт, и, к сожалению, он сильно зависит от ADX Studio, поэтому я не хочу делать ничего, что могло бы его сломать.
[отредактировано, потому что код выше потерял свою code
подсветку]