28

Microsoft.Owin.Host.HttpListenerとを使用して、OWIN で自己ホストされる自己ホスト型 Nancy/SignalR アプリケーションを作成しました。Microsoft.Owin.Hosting

ローカルでは問題なく動作しますが、localhost 以外を使用してアプリにアクセスしようとするとすぐにHTTP Error 503. The service is unavailableエラーが発生します。127.0.0.1またはマシン名を使用してアプリにアクセスすることさえできません。

を使用してポートをurlaclに追加しようとしました

http add urlacl http://*:8989/ user=EVERYONEしかし、何もしないようです。

私が試したOWINの起動オプションは次のとおりです。

var options = new StartOptions
{
    Url = "127.0.0.1",
    App = GetType().AssemblyQualifiedName,
    Port = _configFileProvider.Port
};

var options = new StartOptions
{
    App = GetType().AssemblyQualifiedName,
    Port = _configFileProvider.Port
};

サーバーを起動および停止するファイルのソース コードを次に示します。

4

3 に答える 3

28

StartOptionsそのため、url をurlacl と同じ形式で渡す必要があることがわかりました。

起動オプションを以下のコードに変更すると、問題が修正されました。これで、ネットワーク経由でアプリにアクセスできるようになりました。

  var options = new StartOptions("http://*:8989")
  {
      ServerFactory = "Microsoft.Owin.Host.HttpListener"
  };
于 2013-05-21T02:53:57.533 に答える
12

Windows 8.1で同様の問題を解決するのに何時間も費やしています。

    StartOptions options = new StartOptions();

    options.Urls.Add("http://localhost:9000");
    options.Urls.Add("http://127.0.0.1:9000");
    options.Urls.Add("http://192.168.0.102:9000");
    options.Urls.Add(string.Format("http://{0}:9000", Environment.MachineName));

    WebApp.Start<Startup>(options);

聞くことができなかったか、503 エラーが発生していました...

複数の IP アドレスでリッスンする場合は、各アドレスに独自の urlacl レコードが必要です。

動作しません:

    netsh http>add urlacl http://+:9000/ user=EveryOne    

わかった:

    netsh http>add urlacl http://localhost:9000/ user=EveryOne
    netsh http>add urlacl http://127.0.0.1:9000/ user=EveryOne
    etc.

各アドレスに個別に予約を追加すると、すべて正常に機能します。

于 2014-08-12T13:21:17.387 に答える