Вы получаете ошибку Method not allowed
, потому что HTTP-глагол по умолчанию для вызовов веб-службы - это POST, а когда вы просто набираете URL в веб-браузере, глагол - GET. Используйте инструмент отладчика HTTP, например Fiddler, для имитации запросов POST. Также покажите код, который вызывает эту службу, чтобы мы могли увидеть проблему.
PS. Кроме того, из того, что я помню, я думаю, что вы не можете просто вернуть DataTable из вызова веб-службы, вам нужно иметь его внутри DataSet, чтобы он был правильно сериализован.
Хорошо, я понял, что глагол GET был
вопрос. Любой способ разрешить запрос GET
для устранения неполадок? Есть ли
Sys.Data.DataSet на стороне клиента? я имею
установил фидлер попробую. -
Бруно Тиндалл (9 минут назад) [удалить
этот комментарий]
Нет, на стороне клиента нет структуры DataSet, вы просто вернете XML, который сможете анализировать. Чтобы включить GET вместо POST, украсьте свою операцию следующим дополнительным атрибутом:
[ WebInvoke( Method = "GET", BodyStyle = WebMessageBodyStyle.Bare,
RequestFormat = WebMessageFormat.Xml,
ResponseFormat = WebMessageFormat.Xml ) ]