2013-05-20 10 views
20

をurlaclは、物事はできるだけ早く私がアクセスするローカルホスト以外のものを使用しようとしてローカルに完全に正常に動作しますが セルフOWINを主催し、私は自分が作成した

Microsoft.Owin.Host.HttpListenerを使用してナンシー/ SignalRアプリケーションのセルフホストOWIN中を主催して Microsoft.Owin.Hostingアプリ私は HTTP Error 503. The service is unavailableエラーを取得します。私も 127.0.0.1またはマシン名を使用してアプリにアクセスすることはできません。

私は

http add urlacl http://*:8989/ user=EVERYONEを使用してurlaclするポートを追加しようとしましたが、何もしていないようです。ここ

はここ

 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 
     }; 

がサーバー https://github.com/NzbDrone/NzbDrone/blob/vnext/NzbDrone/Owin/OwinHostController.cs

+0

あなたのコードではどのようなURLを使用しましたか? – davidfowl

+0

@dfowlerは実際のコードで質問を更新しました。 –

+0

127.0.0.1にバインドする代わりに、URLを「*」に変更してみてください。 – davidfowl

答えて

25

がそう、それはあなたがする必要が判明起動し、停止したファイルのソースコードですが、私が試したOWIN開始オプションですURLをurlaclと同じ形式のStartOptionsに渡します。

開始オプションを次のコードに変更すると、問題が解決しました。今では、アプリはネットワークを介してアクセス可能です。

var options = new StartOptions("http://*:8989") 
    { 
     ServerFactory = "Microsoft.Owin.Host.HttpListener" 
    }; 
+1

これはSignalR 2ベータにどのように適合させる必要がありますか? UrlとAppはStartOptionsのプロパティではありません。 –

+0

@uosɐsupdated現在のバージョンのowin(1.1.0 beta 2)の構文と一致するサンプルコード –

+0

Wow。非常に非常に便利:)多くの他の同様の答えがあります(主にIIS Expressについて語りますが)。これは実際に動作します。 – Jedidja

9

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); 

私はあなたが複数のIPアドレスをリッスンしたい場合は、各アドレスは、独自のurlaclレコードを必要とする...

を聞くことができなかったか、503エラーを取得しました。

は動作しません:

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

OK:

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

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

+1

いくつかのIPアドレスまたはURLを追加すると、Microsoft.Owin.Hosting 3.0.1の新しいStartOption( "http:// *:9000 /")でも動作します。 netsh http> urlacl http:// *:9000 /を追加するか、あなたのアプリをadminとして実行してください。 – flip

7

@ kay.oneが提供した情報のおかげで、同じマシンからIPアドレスを使用して自分のホストしているWeb API 2.2(OWIN/Katana、コンソールアプリ)にアクセスできました。 netsh http add urlacl http://*:8080/ user=EVERYONE

  • Go]を入力します(管理者として実行)WindowsのコマンドプロンプトからWebApp.Start<Startup>("http://*:8080");
  • :Program.csののMain

    1. (コンソールアプリケーションのための):ただし、単純なステップ・バイ・ステップにそれを統合高度なセキュリティとWindowsファイアウォールへとあなたは、IPアドレスまたはコンピュータを使用して別のマシンからアクセスできるようにする必要がありTCPポート8080

    を切り開くの受信の規則を追加名。

    免責事項:私はセキュリティ専門家ではないため、これを行うことによるセキュリティの影響についてはわかりません。

  • 関連する問題