2011-12-17 83 views
15

我正在創建一個最終將託管在Windows服務內部的南希模塊。我目前正在WPF測試應用程序中運行它。要啓動南希託管,我使用Nancy.Hosting.Self,並呼籲:遠程訪問南希自助主機

nancyHost = new Nancy.Hosting.Self.NancyHost(new Uri("http://localhost:8080")); 
nancyHost.Start(); 

在我的本地機器我可以去一個網頁瀏覽器並輸入http://localhost:8080到地址欄訪問我的模塊。

如果我去另一臺機器,我無法訪問該服務。我的Windows防火牆已關閉。

如果我使用baseUri中localhost以外的任何東西啓動主機,則在調用nancyHost.Start()時會出現「訪問被拒絕」異常。

有什麼,我失蹤?我應該能夠從任何機器訪問Nancy模塊,只要我知道IP:端口到機器進行託管?有沒有我需要注意的任何類型的「主機標題」?

感謝您的幫助。

回答

24

Windows將阻止您在未經許可的情況下偵聽端口。您可以運行過程作爲管理員,或添加允許使用 「的netsh」:

的netsh的http添加urlacl URL = HTTP:// +:8080 /應用程序用戶=域\用戶

的「+」是通配符,因此它可以偵聽任何IP。

通常情況下,您在安裝過程中會處理後者,因此您可能想以管理員身份運行以進行調試,然後確保您的安裝程序設置相關權限。

+0

只是想包括一個鏈接到的意見!您發佈在Google羣組中... https://groups.google.com/forum/#!topic/nancy-web-framework/UnvrNss9pyM 再次感謝, Brian – 2011-12-20 02:41:01

0

對於本地調試,使用

http://+:8733/Design_Time_Addresses 

你可以添加你喜歡的任何子目錄,例如

http://+:8733/Design_Time_Addresses/myService 

,並在

http://localhost:8733/Design_Time_Addresses/myService 

調試不運行的IDE(可視化Studio?)作爲管理員。

0

看看這個:Self-Hosting-Nancy

主機配置:UrlReservations下添加代碼:

var configuration = new HostConfiguration 
     { 
      UrlReservations = new UrlReservations { CreateAutomatically = true } 
     }; 

OK,你可以創建你的主機〜