2011-12-21 2 views
1

У меня есть ориентированный на обслуживание веб-сайт, который весь его html генерируется службами wcf. Я использую свои службы в прямом эфире. но проблема в коде wcf. Я всегда возвращаю запрос как плохой запрос, но я делаю свое действие в statustext, например, с ошибкой успеха и т. д. ... поэтому проблема в том, что службы не работают на 100% времени штрафа, иногда они возвращают statusText как предполагалось, иногда они возвращают BAD REQUEST, что делает беспорядок в моем приложении. Есть ли какой-либо параметр iis или что-то, что я должен написать, чтобы убедиться, что он возвращает statusText как предполагается? это мой код для его изменения в WCF:jqXHR.statusText всегда возвращается «BAD REQUEST»

//Set the http status code 
currentContext.OutgoingResponse.StatusCode = System.Net.HttpStatusCode.BadRequest; 
//set the msg 
currentContext.OutgoingResponse.StatusDescription = "Success"; 

Я использую JQuery 1.4.2 и WCF 4.0

+2

Это звучит ... плохо. –

+1

Вы отправляете HTTP-заголовок для «плохого запроса» (что означает, что сервер не смог обработать запрос из-за искаженного синтаксиса), а затем сказать «Успех» в теле ...? Как это имеет смысл? – Quasdunk

ответ

1

Некоторые платформы не принимать пользовательские описания состояния текстов - это зависит от браузера, ОС, и, вероятно, какой-то другой фактор (я знаю, что Safari на Macs нет). Просто не делай этого. HTTP RFC указывает, что означает каждый код состояния (поэтому эти платформы могут воспользоваться этим и пропускать синтаксический анализ остальной части первой строки заголовка ответа). Если вам действительно нужно передать некоторую дополнительную информацию, попробуйте использовать какой-либо пользовательский ответный заголовок:

currentContext.OutgoingResponse.StatusCode = HttpStatusCode.BadRequest; 
currentContext.OutgoingResponse.Headers["X-Status"] = "Success";