Я получаю «соединение отказано» или «плохой запрос» при попытке подключиться от эмулятора android к моей веб-службе на localhost. Я добавил номер порта в брандмауэре, чтобы разрешить соединения, и я пытался советам here изменить Applicationhost.configПодключение к локальной веб-службе от xamarin Vs2015 android emulator
Оба веб-службы и эмулятор выполняющихся на том же (Windows 10) ПК. В web.config сервера я следующее под «system.webServer»:
<httpProtocol>
<customHeaders>
<clear />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, PUT, POST" />
</customHeaders>
</httpProtocol>
AFAIK эмулятор может найти веб-сервер (я не получаю 'не найдено ошибку), но сервер отказывается от соединения.
using (WebClient client = new WebClient())
{
string json = ......;
client.Headers[HttpRequestHeader.ContentType] = "application/json";
// I have also tried "application/x-www-form-urlencoded";
string result = client.UploadString(UrlBase.urlBase + "SaveLocation", json);
Если 'URLBase' является http://192.168.1.73:60080/Service1.svc/, я получаю 'Bad' запрос, который я знаю, что может быть результатом плохо отформатированный JSON.
Если «UrlBase» является удаленным сервером, соединение работает (поэтому я знаю, что формат json верен). Такая же обновленная dll работает как на удаленном, так и на локальном сервере.
Если «URLBase» является http://localhost:60080/Service1.svc/, я получаю исключение «отказ в соединении»
Пожалуйста, покажите использованный код и используемый адрес. – greenapps
И что неясно: работает ли эмулятор на том же компьютере, что и ваш веб-сервис? Если у вас три компьютера/ноутбуки, то все они являются их собственным локальным хостом. Поэтому, если вы говорите о локальном хосте, то как мы узнаем, что вы имеете в виду? – greenapps
эмулятор - это собственная виртуальная машина и имеет собственный IP-адрес, поэтому localhost ссылается на эмулятор. Если вы хотите подключиться к компьютеру, на котором запущен эмулятор, используйте его IP или FQDN. – Jason