2013-04-03 6 views
0

У меня есть старое приложение .NET 2.0, подключающееся к asmx web service. Мне нужно отладить веб-службу, но когда я запускаю ее локально, я всегда получаю 400 - Bad Request response. Трассировка веб-сервиса дала мне немного больше информации - исключение, которое было брошено, - Root element is missing. Затем я попытался поймать трафик с помощью Fiddler, но, видимо, он не может его поймать, даже когда приложение принудительно подключилось к localhost: 8888. Поэтому я использовал идею от here для регистрации сообщения о мыле. Но результат был впечатляющим - мыльные сообщения, записанные для этой самой службы, были пустыми. Для других веб-сервисов этот метод работает.. Веб-сервис .asmx - 400 неправильный запрос, отсутствует корневой элемент и пустое сообщение с мылом

Любые идеи, которые могут вызывать такое поведение, или как его отслеживать? Единственная идея, которую я имею сейчас, состоит в том, чтобы подтвердить, что сообщение с мылом пустое с помощью WireShark ...

+0

добавить период после localhost. поэтому он выглядит так: localhost.:8888 вы также можете добавить запись в файл хоста. –

+0

Не повезло, не удалось поймать мыльное сообщение после этого изменения. Версия Fidller, которую я использую сейчас, составляет 2.4.2.6 (последнее в настоящее время). –

ответ

0

Сегодня у меня есть минута, чтобы снова рассмотреть проблему, и я нашел что-то интересное. В файле web.config для веб-службы были объявлены пути для каталогов, используемых веб-службой, и один из путей не существовал. Он не использовался методами, которые возвращали ответ , но после исправления пути к каталогу, который существует, проблема с плохим запросом исчезла. Спасибо за вашу помощь!

0

Ошибка при получении 400 - Bad Request, потому что запрос не может быть проанализирован. Он не может быть проанализирован, потому что это пустое сообщение, поэтому ошибка Root element is missing возникает, когда XML-парсер хочет прочитать ваше сообщение. Убедитесь, что сообщение, отправленное службе, не пустое.