2010-03-03 2 views
4

В настоящее время я вызываю веб-службу ColdFusion на C#. Веб-сервис - это просто простой запрос, используемый для поиска пользователей. Я могу искать только в порядке и возвращает пользователям ИЩУ, если я не попытаться искать «Джонсон», то он возвращает:Вызов службы webservice в C# возвращает найденный тип ответа для ответа «', но ожидаемый' text/xml '

Client found response content type of '', but expected 'text/xml'. 
The request failed with the error message: 
-- 

--. 

Я не знаю, почему он не работает при поиске для этой конкретной строки. Я думал, что это может быть тайм-аут, но ошибка появляется сразу после отправки запроса. Есть идеи???

+0

Есть ли дополнительная информация? Я знаю, что видел подобное сообщение, но он говорит что-то вроде «Клиент нашел тип содержимого ответа« text/html »...». Это означает, что служба отправила обратно ошибку в html, и вы обычно можете увидеть, в чем проблема. Вы всегда можете запустить Fiddler, чтобы увидеть фактический запрос и ответ. –

ответ

1

Я нашел проблему, выяснилось, что в одной из строк в запросе, который не может быть помещен в xml, возвращается недопустимый символ. Убрал недействительный символ, и теперь он отлично работает.

1

может быть выведено из строя. попробуйте сетевой анализатор WireShark, чтобы узнать, что происходит за сценой.

+0

WireShark сообщает, что он возвращает ошибку сервера 500 –

+0

.net должен вызывать более релевантное исключение, потому что 500 означает ошибку. я думаю, что что-то пошло не так на стороне сервера, проверьте его – Andrey

+0

Как утверждает Андрей, 500 ошибок являются неперехваченными исключениями. В принципе, что-то пошло не так (JRun crashed, синтаксическая ошибка, что угодно), и стек сервера не знает, как очистить обработку ошибки. –

1

Я бы начал с вызова службы вручную и посмотрел, что такое необработанное возвращаемое значение. Происходит ли ошибка? Возврат null? Какой-то третий вариант?

+0

Если я вызываю функцию в веб-браузере, она возвращается просто отлично. Я просто отслеживал ответ в WireShark, и я вижу ошибку сервера 500. Почему это произойдет? –

+1

Сервер 500 - это какая-то ошибка в ColdFusion. Проверьте журналы ColdFusion. –

+0

Я нашел проблему в журналах ColdFusion, оказалось, что был неверный символ, который пытался вернуть. Я удалил символ из имени пользователя, и теперь он отлично работает. Спасибо за помощь. –

0

Просто догадаться. Может ли быть так, что этот конкретный запрос не нашел совпадений, поэтому веб-сервис возвращает результат без XML (пустое жало в вашем случае)? Это происходит, когда вы спрашиваете любое другое несуществующее имя (некоторые «бла-бла-бла»)? Если это правильно, это определенно логическая ошибка в служебном коде.

Смежные вопросы