2013-08-21 65 views
15

當使用南希FX,我遇到了以下異常試圖啓動一個Web服務時被拋出來的時候來修復AutomaticUrlReservationCreationFailureException:AutomaticUrlReservationCreationFailureException如何使用南希FX自主機

說完看着它多一點詳細地說,我發現,爲了解決這個問題的方式是運行起來CMD提示符(作爲管理員),然後運行下面的命令:

netsh http add urlacl url=http://+:1234/ user=DOMAIN\username 

其中

  • DOMAIN\username是該服務將
  • 1234下運行的用戶的ID,該服務將在

運行的端口I的情況下,任何人在這裏寫這篇遇到了同樣的問題,花了沒有結果的半個小時左右尋找答案 - 希望他們能比我早點找到答案!

+0

你應該格式化這是一個問題,並提供自己的答案來;這將有助於未來的用戶,特別是如果有其他解決方案的話。 –

回答

14

的的AutomaticUrlReservationCreationFailureExceptionMessage會告訴你這

The Nancy self host was unable to start, as no namespace reservation existed for the provided url(s). 

Please either enable CreateNamespaceReservations on the HostConfiguration provided to the NancyHost, or create the reservations manually with the (elevated) command(s): 

http add urlacl url=http://+:8888/nancy/ user=Everyone 
http add urlacl url=http://127.0.0.1:8888/nancy/ user=Everyone 
http add urlacl url=http://+:8889/nancytoo/ user=Everyone 

建議的保留意見是基於當你創建你傳遞到宿主的基準URI。

+0

啊,是的,看到我應該看起來更難看一個錯誤信息 - 抱歉沒有發現。我對網絡配置工具很不熟悉,所以沒有理解這個消息的含義。 非常感謝您回答我的問題。 –

+6

如果我使用HttpListener創建自己的Web服務器,這一步似乎不是必要的 - 只是好奇爲什麼Nancy需要這樣做? – chrisb

13

如果你創建自己的NancyFx主機,它可能是你更容易標誌的HostConfiguration這樣

HostConfiguration hostConfigs = new HostConfiguration() 
{ 
    UrlReservations = new UrlReservations() { CreateAutomatically = true } 
}; 

或...

HostConfiguration hostConfigs = new HostConfiguration(); 
hostConfigs.UrlReservations.CreateAutomatically = true; 

然後終於有這樣的事

NancyHost nancyHost = new NancyHost(new Uri("http://+:80"), new DefaultNancyBootstrapper(), hostConfigs); 
+1

這是否需要南希服務帳戶擁有本地管理員權限? –

+0

我與達代碼: System.InvalidOperationException:無法在Nancy.Hosting.Self.NancyHost.StartListener() 在Nancy.Hosting.Self.NancyHost.Start配置命名空間預留 () – Arnaud

+0

好,知道了。這是因爲在法語中,「每個人」都是帶有兩個空格的「Tout le monde」,並且Nancy啓動的命令不能保護帶引號的參數......認爲該方法現在不可靠,必須在安裝程序中使用netsh 。 – Arnaud

7

如果您是從Visual Studio運行NancyFX,則還會出現AutomaticUrlReservationCreationFailureException

因此,請確保您以管理員身份運行,以便NancyFX建立底層結構