2013-07-11 156 views
1

我已經通過AppHostHttpListenerBase類設置了一個使用自託管的小型ServiceStack。而不是使用localhost或127.0.0.1作爲baseUri,我使用機器的ip。在本地連接時效果很好,但從其他設備(筆記本電腦,臺式機,平板電腦等)連接時,它會超時。AppHostHttpListenerBase&遠程連接

這是我的AppHost以及我如何啓動它。

public class AppHost : AppHostHttpListenerBase 
{ 
    private static ILog log; 

    public AppHost() : base("ServiceStack Examples", typeof(AppHost).Assembly) 
    { 
     LogManager.LogFactory = new DebugLogFactory(); 
     log = LogManager.GetLogger(typeof(AppHost)); 
    } 

    public override void Configure(Container container) 
    { 
    } 
} 

string path = "http://192.168.3.125:8889/"; 
var appHost = new AppHost(); 
appHost.Init(); 
appHost.Start(path); 
System.Console.WriteLine("AppHost Created at {0}, listening on {1}", DateTime.Now, path); 
Thread.Sleep(Timeout.Infinite); 
System.Console.WriteLine("ReadLine()"); 
System.Console.ReadLine(); 

這在Xamarin正在開發編譯.NET 4.0採用最新ServiceStack庫等運行在Windows 8 Pro和具有管理員權限啓動Xamarin等

我缺少的東西?我已經看遍了所有,但沒有看到任何東西似乎指向我在一個特定的方向。我也沒有在https://github.com/ServiceStack/ServiceStack/wiki/Self-hosting上看到關於不允許遠程連接的免責聲明。

回答

0

如果您提供特定的IP和端口,那麼它只會監聽該IP:端口上的傳入連接。即如果他們使用不同的IP連接到那臺機器,它就不會工作。您可以使用通配符來聽所有IP那臺機器上,e.g:

appHost.Start("http://*:8889/"); 

否則,如果仍然不工作很可能被防火牆阻止。