Назад | Перейти на главную страницу

IIS7 отклоняет запросы POST с ошибкой 400

У меня есть веб-приложение, которое должно обрабатывать почтовые запросы от SAP.

Это отлично работает у других клиентов с системами win2k3 (IIS6) и win2k8 (IIS7).

Однако на сайте этого конкретного клиента IIS отвечает ответом 400, не вызывая мою страницу aspx. Фактически, я даже не вижу его в журнале w3c для виртуального каталога.

Я вижу запрос с помощью сетевого монитора, поэтому я знаю, что никакие брандмауэры и тому подобное не поглощают запрос, и, насколько я могу судить, все поля запроса действительны (есть "длина содержимого", похоже правильно (это отправка файла tiff размером 28 КБ, который не закодирован в MIME, что довольно любопытно, теперь, когда я думаю об этом ...)

Идеи?

Вы можете проверить журнал HTTPERR на этом сервере. Возможно, это сообщение в блоге содержит подсказку, как решить проблему:

Запрос ASMX POST завершается неудачно с ошибкой HTTP 400 при увеличении размера содержимого

Сначала нужно было посмотреть журнал HTTPERR в поле IIS, в нем сообщалось о недопустимой глагольной ошибке:

2009-03-09 21:30:53 10.1.48.56 42676 10.1.48.53 80 HTTP/0.0 Invalid - 400 - Verb - 

Мы нашли ответ, и он не очень полезен для пользователей, не имеющих отношения к SAP.

Программа, выполняющая запрос, была утилитой saphttp.exe, используемой клиентом SAP Front-End. Оказывается, версия, которая была у клиента, была той, о которой SAP сообщила ИМЕННО эта проблема - плохо сформированные POST-запросы. Я скопировал свою версию утилиты на сайт заказчика, и она заработала.

Отметьте это как дурачество SAP.

Есть ли шанс, что этим занимается другой сайт? Попробуйте выполнить «тест на разрыв». Остановите сайт и посмотрите, изменится ли ответ.

Без записи в журнале невозможно определить код субстатуса, что поможет в дальнейшем устранении неполадок.

Это новый сервер? Если это установка по умолчанию, возможно, ASP.NET не включен. Проверьте в службах ролей, если ASP.NET отмечен в веб-сервере / разработке приложений:

IIS включает роль ASP.NET http://learn.iis.net/file.axd?i=2231