У меня была такая же проблема, и, к сожалению, похоже, что ответ "это особенность".
Подробнее здесь:
Хорошо, я попытался опубликовать ссылку на описание проблемы, но там говорится, что «новые пользователи не могут размещать ссылки». Поэтому лучше всего я могу сделать следующее: выполнить поиск в Google по запросу «IIS 6: данные публикации формы отсутствуют в пользовательском обработчике ошибок 404/405» (убедитесь, что он указан в кавычках) и, по крайней мере, на момент написания этой статьи. , лучшим результатом должна быть страница, на которую я ссылался.
Итак, что происходит:
1) Ваш несуществующий URL-адрес POST'd (например, mydomain.com/somepage)
2) IIS получает запрос, отмечает, что некоторая страница не существует, и затем запускает второй запрос к вашему обработчику ошибок, и метод для этого запроса, внутренне, GET. И ни одна из ваших данных POST не передается.
Это оставляет вопрос о том, почему вы каждый добиваетесь успеха в IIS 6 - это меня расстроило.
В любом случае, прочитайте ссылку выше для получения дополнительной информации.
Кстати, я использую PHP на IIS 6 / Windows2003 и обнаружил интересный обходной путь. Хотя PHP не получает переменные POST от IIS (как и следовало ожидать), PHP по-прежнему имеет доступ к необработанному входному потоку, идентифицированному как «php: // input», который может читать запрос original тело от. Он будет содержать переменные POST в необработанном формате - я смог использовать PHP-функцию parse_str (), чтобы получить переменные POST из этой необработанной строки.
Итак, может сделать что-то подобное в ASP.NET. Вы пытались проверить Request.InputStream? Если память мне не изменяет, это даст вам поток, с которого вы сможете читать. Может быть, он будет иметь необработанные данные POST?
-Josh