2013-10-06 6 views
5

Buduję aplikację z Xamarin Studio, która ma uzyskać dostęp do usługi wcf. Uzyskiwanie dostępu do usługi działa dobrze z mojej przeglądarki z adresem URL: http://localhost:52277/apiProblemy z połączeniem z usługą wcf na localhost z emulatora Androida

Ilekroć próbuję uzyskać do niego dostęp z mojego android kod, pojawia się następujący wyjątek:

System.Net.WebException: Error: ConnectFailure (Connection refused) ---> System.Exception: Connection refused 
    at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP) [0x00000] in <filename unknown>:0 
    at System.Net.WebConnection.Connect (System.Net.HttpWebRequest request) [0x00000] in <filename unknown>:0 
    --- End of inner exception stack trace --- 
    at System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0 
    at System.Net.HttpWebRequest.GetResponse() [0x00000] in <filename unknown>:0 
    at ServiceStack.ServiceClient.Web.ServiceClientBase.Send[String] (System.String httpMethod, System.String relativeOrAbsoluteUrl, System.Object request) [0x00051] in c:\Users\nicklas.winger\Documents\GitHub\ServiceStack\src\ServiceStack.Common\ServiceClient.Web\ServiceClientBase.cs:896 

biegnę na usługę IIS wyrazić, a ja modfied moje IIS applicationHost.config tak (Usuwanie 'localhost' z bindingInformation, według kursu na pluralsight):

<site name="ProteinTrackerMvc" id="45"> 
    <application path="/" applicationPool="Clr4IntegratedAppPool"> 
     <virtualDirectory path="/" physicalPath="c:\users\nicklas.winger\documents\visual studio 2012\Projects\ProteinTrackerMvc\ProteinTrackerMvc" /> 
    </application> 
    <bindings> 
     <binding protocol="http" bindingInformation="*:52277:" /> 
    </bindings> 
</site> 

również mój serwis internetowy jest budowanie i wdrażanie nas ing iis express na wspomnianym porcie. Jakieś sugestie co do tego, co robię źle? :)

+1

Sprawdź http://developer.android.com/tools/devices/emulator.html#networkaddresses – Matthew

+0

Dziękuję, proszę pana :) –

+0

@NicklasWinger Uwaga: klienci ServiceStack służą wyłącznie do korzystania z usług ServiceStack, a nie WCF. – mythz

Odpowiedz

5

Rozwiązano za pomocą następującego IP: 10.0.2.2 zamiast localhost.

+0

Rozwiązałem również zmieniony localhost dla ip mojego webservice. Dzięki :) –

+0

Nigdy nie sądziłem, że to zadziała. Ale skąd mam wiedzieć? – Snickbrack

+0

to ten adres IP komputera lub emulatora Androida? i gdzie to zmienisz? dzięki –