2017-11-19 4 views
1

私はウェブ・サービスをホストするためにナンシーを使いたいコンソール・アプリケーションを持っています。 は、ここで私はプロジェクトにこれを実行すると、これは私のプロジェクト構造 The project structureナンシー・セルフ・ホスト・リターン404

ある

namespace NancyConsole 
{ 
    using Nancy; 
    internal class MainModule : NancyModule 
    { 
     public MainModule() 
     { 
      Get["/"] = x => View["Views/index.html"]; 
     } 
    } 
} 

ファイル私MainModule.csあり、ここで私のProgram.csの

namespace NancyConsole 
{ 
    using Nancy.Hosting.Self; 
    using System; 
    internal class Program 
    { 
     private static void Main(string[] args) 
     { 
      string url = "http://localhost:1234"; 
      var host = new NancyHost(new Uri(url)); 
      host.Start(); 
      Console.WriteLine("Server started, now listening on " + url); 
      Console.WriteLine("Press any key to stop the server..."); 
      Console.ReadKey(); 
      host.Stop(); 
     } 
    } 
} 

で、ブラウザに表示されるエラーです。 Error Message

どこが間違っているのか分かりませんか?あなたの助けが高く評価されます!

+0

adminとして実行してみましたか?おそらくVsはポートを予約していなかったでしょう。あなたはポートを予約しましたか:netsh http add urlacl url = http:// *:1234/user = [USER] – MRsa

+0

私はVSで動かず、ソリューションをコンパイルした後、デバッグフォルダに行き、EXEを管理者として実行します。 – indago

+0

@MRsaオプションRewriteLocalhost = falseを指定したHostConfigurationをNancyHostコンストラクタに渡して、url aclsを設定する必要はありません。もちろん、これはローカルホストだけをバインドし、他のノードからはアクセスできません。 –

答えて

2

モジュールを公開します。デフォルトの読み込み戦略では、リフレクションを使用してパブリックモジュールクラスを検索します。 documentationから

public class MainModule : NancyModule 

そうNancyFxがあなたのモジュールを発見することができません、あなたはモジュールのパブリックを宣言することが重要です。

+0

それは魅力のように働いた! – indago