.NET compact framework - ziskanie dat z localhostu

Programovacie jazyky, rady, poradňa...
axxis
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3690
Registrovaný: 29 máj 2007, 21:53
Bydlisko: Spálené mlyny
Kontaktovať používateľa:

.NET compact framework - ziskanie dat z localhostu

Príspevok od používateľa axxis »

Na localhoste mi bezi cloudova aplikacia, ku kotrej musim napisat klienta nad .NET-om. Data sa snazim ziskat takymto sposobom

Kód: Vybrať všetko

 string s = String.Format("http://127.0.0.1:{0}/",txtPort.Text);
            Uri url = new Uri(s);
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
            req.Credentials = CredentialCache.DefaultCredentials;
            ASCIIEncoding encoding = new ASCIIEncoding();
            byte[] data = System.Text.Encoding.ASCII.GetBytes(xmldoc.OuterXml);
            //System.Net.WebClient wc = new System.Net.WebClient();
            //wc.Headers.Add("Content-Type", "text/xml");
            //wc.UploadData("http://127.0.0.1:83/Default.aspx", data);
            req.Method = "POST";
            req.AllowWriteStreamBuffering = true;
            Stream reqStream = req.GetRequestStream();
            StreamWriter wrtr = new StreamWriter(reqStream);
            //wrtr.WriteLine(xmldoc.OuterXml);
            wrtr.Close();
            HttpWebResponse res = (HttpWebResponse) req.GetResponse();
            StreamReader srr = new StreamReader(res.GetResponseStream());
            srr.ReadToEnd();
do uri vstupuje parameter port, ktory sa meni pri kazdom spusteni stranky, takze ho zadavam z textboxu, ktory je v aplikacii. problem vsak je ked sa kod dostane na cast req.GetResponse tak spadne na vynimke WebException s takymto popisom:
Unable to connect to the remote server ( "No connection could be made because the target machine actively refused it )

Aplikacia ale pri tom funguje tak ako ma, mam k nej napisaneho desktopoveho klienta, ktory funguje normalne, tak isto sa mozem na ten localhost pripojit z prehliadaca emulatoru telefonu. Neviete cim by to mohlo byt?
trizzo
VIP
VIP
Používateľov profilový obrázok
Príspevky: 2927
Registrovaný: 26 sep 2004, 14:39

Re: .NET compact framework - ziskanie dat z localhostu

Príspevok od používateľa trizzo »

to debugujes z emulatora alebo priamo v pda? Desktopovy klient predpokladam bezi na tom istom pc ako ta cloud aplikacia. Pda alebo smartphone sa na to nedostane, lebo smerujes repuesty na loopback localhost (127.0.0.1).

Edit: Pripoj pda cez kabel k PC, nastartuj Windows Mobile Device Center (alebo ActiveSync), nechaj telefon pripojit a deploy daj na toto zariadenie, resp. si to cele debugni na tomto zariadeni. Podla mna je problem v tej adrese, lebo 127.0.0.1 je lokalna adresa daneho zariadenia a nie adresa remote PC... S tymto skusenosti nemam, vzdy som siel cez internet na verejnu IP adresu.
axxis
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3690
Registrovaný: 29 máj 2007, 21:53
Bydlisko: Spálené mlyny
Kontaktovať používateľa:

Re: .NET compact framework - ziskanie dat z localhostu

Príspevok od používateľa axxis »

hehe, nie nesnazim sa pripojit z PDA na localhost :D
debugujem z emulatoru
trizzo
VIP
VIP
Používateľov profilový obrázok
Príspevky: 2927
Registrovaný: 26 sep 2004, 14:39

Re: .NET compact framework - ziskanie dat z localhostu

Príspevok od používateľa trizzo »

lenze ak sa nemylim, tak potom ten localhost (127.0.0.1) neodkazuje na tvoje PC, ale na loopback v emulatore... ine vysvetlenie nemam.
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8224
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: .NET compact framework - ziskanie dat z localhostu

Príspevok od používateľa harrison314 »

Z pda som este nerobil, tak strielam naslepo, ale nechyba ti tam

Kód: Vybrať všetko

req.ContentType = "application/x-www-form-urlencoded";   // doplne to pred  req.Method = "POST";

req.ContentLength =  dlzka; // dlzka toho co posielas 
axxis
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3690
Registrovaný: 29 máj 2007, 21:53
Bydlisko: Spálené mlyny
Kontaktovať používateľa:

Re: .NET compact framework - ziskanie dat z localhostu

Príspevok od používateľa axxis »

tam problem nie je, ja som to potom upravil aby len GET-ol tu stranku a aj tak to pada. s kodom je ale ocividne vsetko v poriadku, lebo som popri tom spravil konzolovu aplikaciu, ktora to iste urobila bez problemov.
dokonca ked dam do postnuteho kodu nejaku stranku zvonku tak to bez problemov prejde. Problem je nastava len ak sa chcem pripojit z mobilnej a len na localhost.

//autoeditácia príspevku (03 Dec 2010, 13:09)
trizzo napísal:lenze ak sa nemylim, tak potom ten localhost (127.0.0.1) neodkazuje na tvoje PC, ale na loopback v emulatore... ine vysvetlenie nemam.
Tento navrh sa ukazal byt, ze by mohol byt najpravdivejsi. Ked som sa pokusil pripojit nie cez adresu 127.0.0.1 ale podla mojej lokalnej IP program prebehol spravne. Problem je v tom, ze vsetko co mozem ziskat je ten defaultny obrazok IIS-ka ( na porte 80 ) a ja sa potrebujem pripojit na port 81 kde bezi vyvojovy server.
skusal som nieco ako 192.186.100.5:81 ale nezozerie to, tuto adresu to nevezme ani z prehliadaca, neviete niekto ako na to?
trizzo
VIP
VIP
Používateľov profilový obrázok
Príspevky: 2927
Registrovaný: 26 sep 2004, 14:39

Re: .NET compact framework - ziskanie dat z localhostu

Príspevok od používateľa trizzo »

skus mozno prehladat web, ze ako ActiveSync preklada adresu pripojeneho PC do adresy pripojeneho PDA (alebo smartphone). Potom by to malo ist....
axxis
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3690
Registrovaný: 29 máj 2007, 21:53
Bydlisko: Spálené mlyny
Kontaktovať používateľa:

Re: .NET compact framework - ziskanie dat z localhostu

Príspevok od používateľa axxis »

Už som prišiel na to kde brola chyba, development fabric pre windows azure je chránený proti proti prístupu z vonku takze sa k nedá ísť cez IIS. ( ochrana proti tomu aby ste si nemohli robiť cloud z vlsastnych počítačov ). Vyriešil som to tak, že som si napísal stránku, ktorá beží na mojom IIS, mobil sa pripojí na ňu a kedže ona je na správnom stroji dokáže zavolať localhost a fungovať ako proxy ( hack za milión dolárov :D )
Ďakujem za rady
Napísať odpoveď