Запрос POST шаблона WCF REST 4 работает на локальном хосте, но код ошибки 400 на сервере

У меня есть служба WCF REST, которую я настроил из онлайн-шаблона VS2010. Я специально настроил метод POST на минимальное количество XML. Все работает именно так, как я хочу, при работе на локальном хосте. Однако, когда я развертываю его на сервере, Fiddler дает мне 400. Выполнение запроса GET через Fiddler работает нормально; единственное, что не работает, это POST.

Вот xml запроса, который я вырвал прямо со страницы справки службы WCF:

<UserData xmlns="http://schemas.datacontract.org/2004/07/SRAccountService.SRObjects">
  <key>12345</key>
  <favorite>chocolate</favorite>
</UserData>

Я устанавливаю Content-Type:text/xml в заголовке HTTP. Я также знаю, что есть около 1000 вопросов о stackoverflow, касающихся кодов состояния WCF, POST и 400, но я думаю, что прочитал большинство из них, и ни один (из тех, что я видел) не делает то, что мне нужно.

У кого-нибудь есть мысли? Буду премного благодарен!

РЕДАКТИРОВАТЬ: я работаю в срок, поэтому я перенастроил службу, чтобы принимать параметры как часть URL-адреса и возвращать данные через запрос GET. То же самое происходит - отлично работает на локальном хосте, 400 на сервере. Это безумие!


person jdb1a1    schedule 20.04.2012    source источник


Ответы (2)


Вот мысль

http://geekswithblogs.net/michelotti/archive/2011/05/28/resolve-404-in-iis-express-for-put-and-delete-verbs.aspx

person suing    schedule 20.04.2012
comment
спасибо за идею, это очень ценно. POST фактически включен на этом сервере. У меня есть другие веб-сервисы, которые работают на этом сервере (хотя я не проверял их в последнее время), они ОТЛИЧНО принимали POST-запросы. Я добавил сертификат SSL за последние 6 месяцев, но это единственное изменение на сервере. - person jdb1a1; 20.04.2012
comment
Любое другое оборудование перед сервером. Прокси, LoadBalancers и т.д.? Могут ли они изменить запрос? Можете ли вы опубликовать точный http-запрос, включая заголовки? Есть ли в журналах IIS что-то необычное? Попробуйте подумать о пути, который делает ваш запрос от скрипача на вашем ПК и сервере, и проверьте каждую точку. Можете ли вы сделать этот запрос на сервере напрямую к серверу? Вы проверили, что это развернуто правильно? Наши запросы IIS дублировались из-за использования Forefront/UAG. Мы действительно видели дублирующиеся запросы в журналах IIS. - person suing; 21.04.2012
comment
Спасибо за помощь; Думаю, я понял это. Это была интегрированная проблема безопасности со строкой подключения. - person jdb1a1; 21.04.2012

Проблема заключалась в том, что я использую модель объекта ado.net для подключения к серверной базе данных... строка подключения использовала встроенную безопасность (в отличие от входа в систему SQL Server), поэтому, когда я начал запускать ее на сервере, интегрированная часть сломанный.

person jdb1a1    schedule 21.04.2012