2015-11-06 61 views
1

我正在創建一個簡單的Windows服務,承載Nancy實例以提供其內部數據的視圖。在本地計算機上使用瀏覽器時,一切都按預期工作;我看到它提供的觀點。但是,我找不到任何理由不能從遠程瀏覽器訪問(在同一網絡上)。從遠程瀏覽器訪問只需延遲一段時間; IE將最終顯示「此頁面無法顯示;」 iPad上的Safari會在一段時間內顯示部分進度欄,並且什麼也不做。如何遠程訪問自主託管的Nancy服務?

我使用所有本地IP進行綁定,而不僅僅是本地主機。 我在此鏈接使用GetUriParams()函數來發現綁定的所有本地IP地址。 http://www.codeproject.com/Articles/694907/Embed-a-web-server-in-a-windows-service

_nancyHost = new NancyHost(GetUriParams(port)); 
_nancyHost.Start(); 

我在本頁發現綁定到本地主機僅適用於本地訪問。 http://forums.asp.net/t/1881253.aspx?More+SelfHost+Documentation

該功能發現的IP地址適用於以前安裝VMware播放器的以太網適配器,無線適配器和兩個VMware網絡適配器。我試過了通過計算機名和文字IP對以太網適配器進行遠程訪問。

我向urlacl列表添加了條目。 我已經使用了netsh http add urlacl命令,在很多地方建議,包括在此鏈接:Remote access to a Nancy Self Host

如果我執行netsh http show urlacl,我看到我使用該端口的條目。

我嘗試了不同的南希CONFIGS 如果我設置UrlReservations.CreateAutomatically南希配置選項,我會得到安全提示,這允許後,我看到新的條目netsh http show urlacl列表輸出爲所有的本地IP地址,但它仍然不允許遠程訪問。我也嘗試了RewriteLocalHost選項true和false。

我試着http://+:3684http://*:3684開始南希(這會從Uri()解析除外),並與http://0.0.0.0:3684(後者從AddAllPrefixes()HttpListener()除外)。

我加入了EXE到Windows防火牆 我已經在此描述創建的防火牆例外:https://msdn.microsoft.com/en-us/library/ms733768.aspx

相關的規則顯示私人,公共和「任意」與TCP和UDP每一列。

我試着在不同的環境中運行Nancy。我已經運行了以下代碼:作爲本地系統運行的Windows服務,Visual Studio 2013調試器中的控制檯應用程序以及以管理員身份運行的控制檯應用程序。

我想這是一個簡單的安全設置,但我已經搜索並搜索並嘗試了幾天的各種事情。

我錯過了什麼?

回答

2

這個答案提供了我需要的線索。 https://stackoverflow.com/a/21364604/1139376

這是因爲HttpListener是建立在HTTP.SYS的頂部,這將聽你代表你的程序指定的端口上。

這不是我的EXE做實際的聆聽。我所需要做的就是將一個傳入規則添加到爲「系統」程序設置的Windows防火牆以及我正在使用的特定TCP端口。這允許遠程訪問。

-1

使用HostConfiguration並讓Nancy自動爲您預訂網址。

var config = new HostConfiguration 
{ 
    RewriteLocalhost = true, 
    UrlReservations = new UrlReservations { CreateAutomatically = true } 
}; 
host = new NancyHost(new Uri("http://localhost:8080"), new DefaultNancyBootstrapper(), config); 
host.Start(); 

請注意,這將強制ACL爲新端口創建網絡規則(如果它們尚不存在)。

+0

我做到了。當我不這樣做時,南希會在Start上拋出異常。當我嘗試進行測試時,Nancy添加了以下條目。 '保留網址:HTTP://土星:8378/ 用戶:\大家 聽:是 代表:沒有 SDDL:d:(A ;; GX ;;; WD) 保留的URL:http:/ /192.168.0.21:8378/ 用戶:\大家 聽:是 代表:沒有 SDDL:d:(A ;; GX ;;; WD) 保留網址:http://192.168.0.16:8378/ 用戶:\ Everyone 收聽:是 代表:否 SDDL:D:(A ;; GX ;;; WD) – cdburgerjr

相關問題