У меня есть веб-приложение, которое должно обрабатывать почтовые запросы от 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