2017-02-09 4 views
0

WebApp.Startを使用してHTTPリクエストを受信するWindowsサービス(Topshelfパッケージを使用)を作成しました。次のように私のコードは次のとおりです。Windowsサービス内からMicrosoft.Owin.Hosting.WebApp.Startによって公開されるURLは、リモートマシンでアクセスできません

var options = new StartOptions(); 
    options.Urls.Add("http://localhost:9095"); 
    options.Urls.Add("http://127.0.0.1:9095"); 
    options.Urls.Add($"http://{ConfigurationHelper.IPAddress}:9095"); 
    options.Urls.Add($"http://{Environment.MachineName}:9095"); 

    Microsoft.Owin.Hosting.WebApp.Start<Startup>(options); 

私はWindowsサービスのマシン上で閲覧していたとき、私は必要なすべてのURLを打つことができますが、私はマシンにアクセスして、同じネットワーク上のリモートマシン上にいる時、私はURLを打つときに500エラーが発生します(すなわち、http://192.168.100.14:9095/hangfire/)。

いくつかの注意:それが事実か404だった場合

  1. Windowsファイアウォールがオフになっているが、私たちのハードウェアファイアウォールが何かをブロックされる可能性がありますかどうか、私はまだそれを確認していますが(私たちは500になるだろうか? )

  2. WindowsサービスはAdministratorsグループの一部であるローカルユーザーとして実行されています。私は500を取得したいか、どのようにどこにでも任意の診断情報を参照してください理由についてnetsh http add urlacl url=http://127.0.0.1:9095/ user=myAdminUser

他のアイデア:それらのURLのそれぞれについて

  • は、私がnetshコマンドを実行しましたか? (デバッグビューとイベントビューアには何もありません)。

    これは私の最初のOwinアプリケーションなので、まだ非常に緑色です。

    更新:OWINエラートレース

    [8496] BTR.Evolution.Service OWIN例外:オブジェクトのインスタンスに設定されていないオブジェクト参照。 Hangfire.Dashboard.MiddlewareExtensionsでHangfire.Dashboard.MiddlewareExtensions.Unauthorized(IOwinContext owinContext)
    [8496]に[8496]
    [8496]
    。 <> c__DisplayClass1_2.b__1(IDictionary`2 env)
    [8496] Microsoft.Owin.Mapping.MapMiddleware.d__0.MoveNext()
    [8496] ---例外がスローされた前の場所からのスタックトレースの終了 - - [8496]
    BTR.EvolutionでSystem.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotificationでSystem.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(タスクタスク)
    [8496](タスクのタスク)
    [8496]に。 C:\ BTR \ Source \ Evolution.Service \ BTR.Evolution.Service \ Startup.csのService.GlobalExceptionMiddleware.d__1.MoveNext():行20

    多分それは原因であったオーウィンではなく、むしろハングファイアとリモートでそれを使用しようとしました。認可フィルタを調べて、それが役立つかどうかを確認します。

  • +0

    500エラーの本文は何ですか? –

    +0

    ええと、私はChromeにいて、他に何も見ません。私が得るのは、 '192.168.100.14のページは機能しません。現在、この要求は192.168.100.14で処理できません。 HTTP ERROR 500'と 'Reload'ボタンがありますが、他には何もありません。 Chromeの設定で詳細を確認するのに何も表示されませんでしたが、おそらく私はそれを見逃しました。 – Terry

    +0

    f12を押して、ページをリロードして、ネットワークのインスペクタにもっと手がかりをつけてください... –

    答えて

    0

    OWINミドルウェアロガーを作成することにより、例外からスタックトレースを取得する方法を調べてください。詳細はUnhandled Exception Global Handler for OWIN/Katana?を参照してください。

    スタックトレースを含むアップデートで判断すると、ハングファイア内の認証問題を調べる必要があります。チェックアウトhttp://docs.hangfire.io/en/latest/configuration/using-dashboard.html#configuring-authorization - これは、セキュリティ上の理由から、デフォルトではローカル要求のみが許可されていることを示しています。IAuthorizationFilterを使用してリモート要求を許可する方法を示すサンプルコードも提供します。

    関連する問題