Minulla on HTTP-palvelin, jota hostaan omalta koneelta. Tarkoituksena on lähettää puhelimesta dataa serverille, jota hostaan samassa lähiverkossa.
Palvelin toimii hienosti "standalone"-sovelluksena, mutta kun laitan palvelimen pyörimään Windows Servicenä, ei se vastaa kyselyihin, paitsi sillä koneella millä hostaan.
http://localhost:8080/ sekä http://192.168.1.121:8080 toimii hostikoneella hienosti, mutta esim. puhelimen selaimella joka on samassa WLAN-verkossa ei pääse palvelimeen käsiksi jos se pyörii servicenä.
Windows 8.1 admin-oikeuksilla.
// C# IPAddress GetPublicIP() { IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName()); foreach (IPAddress ip in host.AddressList) { if (ip.AddressFamily == AddressFamily.InterNetwork) { return ip; } } return null; } public void listen() { listener = new TcpListener(GetPublicIP(), port); listener.Start(); while (is_active) { TcpClient s = listener.AcceptTcpClient(); HttpProcessor processor = new HttpProcessor(s, this); Thread thread = new Thread(new ThreadStart(processor.process)); thread.Start(); Thread.Sleep(1); } }
Voisko windowsissa olla palomuuri joka blokkaa?
No niinpä tietysti. Serviceä ajettaessa ei tule tuota normaalia popuppia, joka kysyy tuosta blokkauksesta :) Kiitoksia, nyt toimii.
Aihe on jo aika vanha, joten et voi enää vastata siihen.