Я работал над учебником по http://fszlin.blogspot.com/2010/05/comsuming-wcf-services-with-android.html и у меня проблема. Автор учебника не выглядит отзывчивым, поэтому я решил, что задаюсь здесь.
У меня работает служба WCF. Если я запустил приложение WCF Test, которое поставляется с Visual Studio, я могу получить к нему доступ без проблем. Моя проблема запускается из приложения или даже пытается попасть через браузер, ничего не возвращается.
Вот что я пробовал:
Установка точки останова в службе WCF и запуск приложения тестирования WCF, когда я делаю вызов, он попадает в точку останова. Имеет смысл.
Помещение URL-адреса в браузере ничего не возвращает (без ошибок, без данных), и точка останова никогда не попадает.
Помещение URL-адреса в приложение Android и его запуск в эмуляторе Android ничего не возвращает (без ошибок, без данных), и точка останова никогда не попадает.
Думая, что он не может подключаться из браузера или приложения для Android, я ввел плохой URL-адрес в браузер (например, изменил его из http://localhost/hello.svc/GetPlates в http://localhost/hellotest.svc/GetPlates) возвращает ошибку, то же самое в приложении Android.
Так что мне кажется, что он правильно попал в сервис, просто по какой-то причине не выполнив код. Я не знаю, как это проверить дальше. Предполагается, что SOAP-сервисы могут быть удалены из браузера? Особенно, когда функция в вызываемой вами службе не принимает никаких параметров и возвращает только данные?
Опять же, все это работает в тестовом приложении WCF, просто не может показаться, что цель в конечном итоге вызвана службой из приложения Android.
Большое спасибо заранее!
Mike
Вы, скорее всего, нашли решение уже, но если вы используете веб-сервер Visual Studio по умолчанию (он же Cassini), причина в том, что он не может принимать удаленные подключения в целях безопасности. Это ограничение встроенного сервера и по дизайну. Вы можете разместить его с помощью настраиваемого сервера, выбрав альтернативный переключатель на страницах свойств проекта. Возможно, вам понадобится использовать IIS, WAS или узел службы Windows для приема удаленных HTTP-соединений.
Я хотел бы добавить еще одну информацию, основанную на опыте, полученном от нашей команды .Net. Перед развертыванием на сервере хостинга вы должны удалить "проверку подлинности Windows" из конфигурации.